【发布时间】:2014-11-23 14:04:34
【问题描述】:
如何将 BDD 风格(摩卡、茉莉等)大包装单 describe() 分解为多个文件。我有一个 5,000 行的单元测试文件,全部包装如下:
describe('services',function(){
describe('serviceA',function(){...});
describe('serviceB',function(){...});
describe('serviceC',function(){...});
describe('serviceD',function(){...});
// .....
describe('serviceN',function(){...});
});`
为了理智起见,我想将每一个('serviceA','serviceB',...,'serviceN')分解成自己的文件。但我希望每个人仍然在describe("services") 内。
我看到了两种方法:
- 在父级中使用 require:
describe('serviceA',require('./services/serviceA'));(重复很多次) - 有一些包装器将它们全部包含在内
我不喜欢第二种方法,因为它需要大量保持文件名、require() 和 describe() 同步(因此违反了 DRY)。
我更喜欢每个文件知道它正在测试什么,而不必显式添加路径,而只需让测试运行程序智能地包含 './services' 中的所有内容,从而在 serviceA.js 中包含所有内容:
describe('serviceA', function() {
// ....
});
但是我需要一些方法将“serviceA”“包装”在“services”中。有什么办法吗?
在这种情况下,我正在通过 karma 测试一个 Angular 应用程序,但概念是相同的。
【问题讨论】:
标签: jasmine mocha.js karma-runner