我有一个 config.ts 返回一个对象:
// Config is an interface that I use to know which values are expected
export default function getConfig(): Config {
return {amount: 50}
}
我有一个依赖于 config.ts 的类(../src/models/item.model):
import getConfig from '../config/config';
class Item{
_id: number;
amount: number;
constructor(_id: number) {
this._id = _id;
this.amount = getConfig().amount;
}
}
export default Item
我想编写一些具有不同数量值的测试。默认值为 50(在 config.ts 中设置),但在我的 item.test.ts 中我想使用 100 的值。我试图通过使用 Proxyquire 来实现这一点:
it('should use voxelsize of custom config', (done) => {
const itemModel = proxyquire('../src/models/item.model', {
'../config/config': function getConfig() {
return {amount: 100};
}
}).default;
const testItem = new itemModel(1)
expect(testItem.amount).to.equal(100);
done()
})
testItem.amount 实际上是 50(所以它仍然使用原始配置文件)。这应该是 100。
我怎样才能让测试通过?