在Web前端开发中,自动化测试已经成为很多公司日常开发流程的重要一环。在其中,ember-test-waiters 是一个非常方便的npm包,它可以帮助开发者处理异步测试代码中的各种的等待逻辑,减少了测试代码中等待时间的耗时,提高了测试代码的可维护性和可读性。本文将详细介绍什么是ember-test-waiters以及如何正确地使用它。
什么是ember-test-waiters?
ember-test-waiters是一个为 Ember.js 测试提供了依赖注入式的等待条件的 npm包,它允许你使用 waitUntil 实现测试代码中的长时间等待。例如当应用程序在后台加载时,它可以指示测试运行器何时等待任务完成。
ember-test-waiters允许测试代码轻松地描述应用程序处于哪种状态,可以使用像 Promise 的任何 API /操作,比如.then()和.catch(),从而提高了测试代码的可读性和可维护性。此外,它的依赖注入模式也让你很容易地模拟或替换一些依赖。
如何使用 ember-test-waiters?
- 安装
在开始使用之前,需要先安装此npm包,并在测试文件中导入。
npm install --save-dev ember-test-waiters
- 注册 Waiter
需要在应用程序中,将每个waiter regist到这个环节过程中中。这样就可以使用ember-test-waiters包中的waitUntil方法去异步等待。
import { setTestWaiter } from 'ember-test-waiters'; setTestWaiter();
- 注册 waiters for custom conditions
对于其他异步等待条件,可以使用registerWaiter函数自定义waiters。
-- -------------------- ---- ------- ------ ----- ---- -------- ------ -------- ------------ - ---------------------------------- -------------------- - ------ ----------------------------------- --- - ------ ------- - ----- -------------- ---------- --
也可以通过如下方式去注册:
import { registerWaiter } from "ember-test-waiters"; registerWaiter(condition);
- 使用
在测试用例中,可以使用waitUntil方法,例如:
test('test case', async function(assert) { await visit('/artists'); assert.ok(find('.Artist-search')); // pass immediately return await waitUntil(() => !find('.Artist-results-loading-spinner')); });
在上述用例中,当.find('.Artist-results-loading-spinner')返回一个 "真" 的值,也就是不再显示 "Loaing" 菊花时,就不再执行测试。
总结
本文介绍了 npm包 ember-test-waiters的使用方法,这个包可以帮助你更好地处理asyne等待代码,以便使测试代码更有可维护性和可读性。它依赖注入模式也让你很容易地模拟或替换一些依赖。以上介绍的方法是基本方法,需要在实际使用过程中根据需求作出适当的调整。
参考资料
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedc0aeb5cbfe1ea0611cbe