假设我想在打字稿中对一个函数进行单元测试。
该函数使用具有复杂形状的“选项”类型(对象)参数。
interface option {
param1 : string
param2 : number
param3 : {
param4 : string
param5 : boolean
}
.
.
.
param15 : string
}
const functionToTest = (opt:option)=>{
...do stuff with option
}
现在假设我想编写一个单元测试,当 param1 更改时模仿 functionToTest 的正确行为,忽略对结果没有影响的其他参数。
据我了解,为了使我的测试更具弹性,我可以用纯 JS 编写
const option1 = {
param1 : "foo"
}
并进行我的测试
expect(functionToTest(option1)).to.be.true;
但是,如果我用打字稿编写测试,我将不得不编写一个包含所有接口(虚拟)成员的完整 option1 对象,尽管大多数将被忽略,并且它会使读者偏离测试的真正目标。
是否有解决方法,或者我应该改变我的想法?
您可以利用打字稿的Partial https://www.typescriptlang.org/docs/handbook/advanced-types.html为了这。
interface YourInterface {
prop: string;
foo: number;
}
const data: Partial<YourInterface> = {
prop: 'value'
};
// service is an instance of SomeService
service.sendData(<YourInterface> data);
class SomeService {
sendData(data: YourInterface) {
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)