全局的beforeEach/afterEach用于余数单元测试



我的应用程序在localStorage中存储了一些关于当前会话的信息。因此,我需要我的测试在所有测试文件的每个测试之前或之后清除localStorage。是否有一种方法来定义beforeEachafterEach回调全局,而不是在每个测试文件?

出于几乎相同的原因,我们包装了ember-qunit的modulemoduleFormoduleForComponent。我们进口的是这些包装纸而不是ember-qunit。

另一个建议是用服务包装localStorage。永远不要访问localStorage,除了这个服务。因此,您可以在测试中使用它的模拟实现。

更新:

如何实现:

import { moduleFor, moduleForModel, test, only, setResolver }    from 'ember-qunit';
import { moduleForComponent as qunitModuleForComponent } from 'ember-qunit';
function moduleForComponent(name, description, callbacks) {
   //our implementation that wraps "qunitModuleForComponent" 
   //eg. init commonly used services vs.
}
export {
  moduleFor,
  moduleForComponent,
  moduleForModel,
  test,
  only,
  setResolver
};

优点:

  • 防止代码重复
  • 集中单元测试管理
  • 易于为自定义需求添加新方法,如:moduleForValidatableComponent, moduleForLocalStorage

缺点:

  • ember-cli生成正在导入ember-qunit的测试。开发人员必须更改这些包装器的导入语句。有时它被遗忘了。(当测试失败时,开发人员要记住他们需要更改import语句。)
  • 对于某些测试,不需要换行。

相关内容

  • 没有找到相关文章

最新更新