如何将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")
里面。
我看到了两种方法:
describe('serviceA',require('./services/serviceA'));
(重复多次)我不喜欢第二种方法,因为它需要大量保留文件名,require()
和describe()
同步(因此违反了DRY)。
我更喜欢每个文件知道它正在测试的内容,而不必显式添加路径,而只是让testrunner智能地包含'./services'
中的所有内容,因此内部{{ 1}}:
serviceA.js
然后我需要一些方法来"包裹" ' serviceA'内部'服务'。有没有办法做到这一点?
在这种情况下,我正在通过业力测试角度应用程序,但概念是相同的。
答案 0 :(得分:1)
Jasmine的describe
对于加载文件没有特殊意义。这是一个描述符。什么阻止你这么做?
Karma配置:
files: [
'src/services/**/*.js',
'tests/services/**/*.js'
]
serviceA.spec.js
describe('services', function () {
describe('serviceA', function () {
});
});
serviceB.spec.js
describe('services', function () {
describe('serviceB', function () {
});
});