在前端开发过程中,我们常常需要测试我们的代码。但是,测试代码也有它的限制。比如,我们在使用 generator 函数的时候,测试代码可能会因为不支持 generator 函数而失败。这时候,我们就需要使用 ember-maybe-import-regenerator-for-testing
这个 npm 包来解决这个问题。
本篇文章将为大家介绍如何使用这个 npm 包来解决测试 generator 函数的问题。
什么是 Generator 函数?
Generator 函数是 ECMAScript 6 中的一种新的函数类型,它的特点是可以暂停执行,并且可以在内部通过 yield
暂停执行并返回结果。Generator 函数在前端开发中有非常广泛的应用,比如,异步编程和批处理等等。
下面是一个简单的 Generator 函数示例:
function* generator() { yield 1; yield 2; yield 3; }
为什么测试代码不支持 Generator 函数?
在测试代码中经常使用的 QUnit
、Ember-qunit
、Mocha
、Chai
和 Jasmine
等测试框架,它们默认不支持 Generator 函数。如果我们使用 Async function
来编写我们的测试代码,那么会发现 QUnit
和 Ember-qunit
会认为你的代码是异步的,而 Mocha
、Chai
和 Jasmine
会抛出异常 SyntaxError
。
所以,当我们需要在测试代码中使用 Generator 函数的时候,我们需要使用 ember-maybe-import-regenerator-for-testing
这个 npm 包来解决这个问题。
如何使用 ember-maybe-import-regenerator-for-testing?
首先,我们需要安装 npm 包:
npm install ember-maybe-import-regenerator-for-testing --save-dev
然后,在测试文件的开头,引用 ember-maybe-import-regenerator-for-testing
:
import maybeImportRegenerator from 'ember-maybe-import-regenerator-for-testing'; maybeImportRegenerator();
这样,我们就完成了对于 Generator 函数的支持。
接下来,我们可以编写我们的测试代码了。下面是一个使用 Generator 函数的测试代码示例:
-- -------------------- ---- ------- ------ - ------- ---- - ---- -------- --------- ------------- - ----- -- ----- -- ----- -- - --------------------- --------------- - ---------- ------------- ---------------- - ----- --- - -------------- ------------------------------ -- ------ ---- ------ -- ---- ------------------------------ -- ------- ---- ------ -- ---- ------------------------------ -- ------ ---- ------ -- ---- --- ---
运行测试代码的时候,我们会发现测试通过了。
总结
使用 ember-maybe-import-regenerator-for-testing
这个 npm 包,可以让我们在测试代码中使用 Generator 函数,从而解决在测试代码中不支持 Generator 函数的问题。同时,这也提醒我们,当我们碰到测试中的问题的时候,我们要善于找到一些工具或者解决方案,来解决这些问题。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/59725