JavaScript 单元测试¶
编写单元测试与编写代码本身一样重要:它有助于确保代码是根据给定的规范编写的,并且随着代码的发展保持正确。
测试框架¶
测试代码从测试框架开始。该框架提供了一定程度的抽象,使得以简单有效的方式编写测试成为可能。它还提供了一组工具来运行测试、做出断言并报告结果。
Odoo 开发人员使用名为 HOOT 的本土测试框架。使用自定义框架的主要原因是它允许我们根据需要进行扩展(标签系统、全局对象的模拟等)。
在该框架之上,我们构建了一组工具来帮助我们为 Web 客户端 (web_test_helpers) 编写测试,以及一个模拟服务器来模拟服务器端 (mock_server)。
您可以在下面找到每个部分的参考链接,以及包含编写测试的示例和最佳实践的部分。
设置¶
在学习如何编写测试之前,最好先从基础知识开始。以下步骤将确保测试运行程序正确选取您的测试文件。
请注意,在现有插件中,大多数步骤都可以跳过,因为可能已经设置了正确的文件夹结构和资源包。
在正确的**位置**写入文件:
所有 JavaScript 测试文件应放在相关插件的
/static/tests文件夹下(例如/web/static/tests/env.test.js)。使用正确的**名称**:
测试文件必须以
.test.js结尾。这不仅是一个约定,也是对运行者拾取测试文件的要求。所有其他 JavaScript 文件将被解释为生产代码(即要测试的代码)或测试帮助程序文件(例如 web_test_helpers)。注解
需要注意的是,
.hoot.js文件有一个例外,它们不被视为测试文件,而是作为整个测试运行的全局模块,而其他 JavaScript 模块则为每个测试套件重新创建。由于这些模块的相同实例将在整个测试运行中运行,因此它们遵循严格的约束,例如限制导入或高级内存管理技术,以确保没有副作用影响测试。调用右侧**bundle**中的文件:
添加到正确文件夹中的测试文件必须包含在
web.assets_unit_tests捆绑包中。为了便于使用,可以使用 glob 语法来导入所有测试和测试帮助程序文件:# Unit test files 'web.assets_unit_tests': [ 'my_addon/static/tests/**/*', ],
前往右侧 URL:
要运行测试,您可以转到
/web/testsURL。小技巧
可以通过 访问此页面。
编写测试¶
创建并包含测试文件后,就可以编写测试了。您可以参考以下文档部分来了解测试框架。