我正在寻找一种很好的最佳实践方法来在JavaScript单元测试中维护我的模拟对象。
我首先关注的是单元测试将侧重于功能,因此describe
和it
会更短,因此它不会包含其中的模拟对象。
糟糕的例子:
it('some testing example', function() {
const currentProduct = {
name: 'VSp',
description: 'dfdf',
id: 'D4774719D085414E9D5642D1ACD59D20',
version: '0.10',
status: 'READY'
};
const obj = {
product: {
productEditor: {
data: currentProduct
},
productComponents: {
componentEditor: {
qdata: {},
qschema: {},
data: {}
},
network: {
nicEditor: {},
nicList: []
}
}
}
};
const results = exampleFunctionUnderTest(obj);
expect(results.qdata).toExist();
expect(results.qschema).toExist();
expect(results.componentData).toExist();
});
你可以意识到,被模拟的对象可能会更大,它会使单元测试代码非常难看,不清楚,不可读......
这个unti测试更容易阅读和理解:
it('some testing example', function() {
const results = exampleFunctionUnderTest(someMockedObjectFromXXX);
expect(results.qdata).toExist();
expect(results.qschema).toExist();
expect(results.componentData).toExist();
});
显然,天真的解决方案是将它们放在单独的.json
或.js
文件中。但是,我可能会在.json
个文件周围放置一个巨大的*.test.js
个文件,这些文件可能会导致一些“嘈杂的”#34;工作环境。 < - 这是我的第二个问题 - 如何正确维护这些文件。
我没有成功找到合适的帖子来明确这个主题的内容,我很乐意参考推荐的帖子,或者如果你有自己的经验分享,你已经完成了你的项目。
如果重要,我使用karma
和mocha
作为我的测试框架
干杯!