Mochitests¶
我们使用 mochitests 进行功能(以及可能集成的)测试。Mochitests 是 Firefox 的一部分,允许我们像使用活动流一样对其进行测试。
Mochitests 位于 test/browser
中,在撰写本文时,它们都是 browser-chrome
风格的 mochitests。它们目前仅针对系统加载项中引导版本的加载项运行,而不是顶层目录中的测试版。
添加新测试¶
如果添加新测试,请确保在 browser.ini
文件中列出它们。您将在那里看到其他测试。添加一个与其他测试格式相同的条目。您还可以通过在 support-files
下列出新 JS 或 HTML 文件来添加它们。确保测试名称以“browser_”开头,以便测试套件知道选择它。例如:“browser_as_my_new_test.js”。
编写测试¶
以下是一些编写 mochitests 的技巧
仅为测试页面上多个组件的交互并确保协议正常工作而编写 mochitests。
如果需要访问内容页面,请使用
ContentTask.spawn
ContentTask.spawn(gBrowser.selectedBrowser, null, function* () {
content.wrappedJSObject.foo();
});
上面调用了页面本身中存在的函数 foo
。如果要点击按钮或执行其他操作,也可以通过这种方式访问 DOM: content.document.querySelector
。您甚至可以在此回调中使用断言来检查 DOM 状态。
没有人喜欢在测试中看到间歇性的橙色,因此请阅读 关于如何避免它们的文档!