Vitest 中的模拟技术
Mocking Techniques in Vitest
让我们面对现实吧,嘲笑真的很令人困惑。
首先,你需要知道要模拟什么。然后,找到正确的方法来模拟那个东西,这样它就不会损害你的测试套件。过度模拟,你的测试就变得毫无意义。Under-mock,它们反而变得脆弱。
无论哪种情况,你都付出了很多努力,但你觉得你没有得到太多回报。
这就是 Artem 的用武之地。近十年来,他一直在证明开发人员对 mock 错误的误解,他在这里让您成为 mock 专家。
您将学到什么
在这个实践研讨会中,您将学习:
- 嘲笑的目的;
- 嘲笑什么,什么时候嘲笑;
- 如何编写带来价值而不是维护繁琐的 mock;
- 如何将 mock 与实现细节分开;
- 为您的 mock 键入安全策略;
- 以及测试代码所需的所有模拟技术!
通过使用 Vitest 框架解决有针对性的真实问题,您将全面了解模拟,并最终将其作为测试库中的有用工具解锁。
研讨会结构
此研讨会包含 6 个练习块,专门用于模拟不同数据类型的各种技术。
边界
了解模拟的真正含义,并了解它如何帮助您创建测试边界。使用视觉隐喻了解您引入的每个 mock 对测试代码的作用。
模拟函数
函数是 JavaScript 逻辑的核心。了解如何模拟函数以进行有效的输入输出测试。创建模拟函数、侦测函数调用和模拟函数实现,以利用测试代码的正确行为。
模拟日期和时间
消除测试中不断变化的日期和时间的副作用。了解如何冻结时间并模拟与日期/时间相关的代码,以确保不同运行和时区的测试结果一致。
模拟全局变量
探索如何以非侵入性方式模拟隐式依赖项。学习模拟全局值、方法和环境变量,以创建完美的测试设置,而无需干预您不拥有的东西。
模拟网络
获得对网络通信的控制并可靠地测试您的客户端代码。使用 Mock Service Worker 拦截请求和模拟响应。重现各种网络场景,从成功和错误响应到离线行为和响应时间。
模拟模块
了解何时使用模块模拟,并在使用之前探索替代技术。了解如何使用 Vitest 中的内置 API 以类型安全且高效的方式模拟模块。
这个研讨会的目标
此研讨会面向所有开发人员,包括刚接触自动化测试的开发人员和多年来一直在编写测试的开发人员。如果您不确定何时将 mock 引入测试套件,或者如何执行此操作,以便不必在第二天重构它,那么这个研讨会是专门为您准备的。
评论(1)
ya!感謝