【发布时间】:2016-09-18 06:02:55
【问题描述】:
假设我想在 typescript 中对一个函数进行单元测试。 此函数使用具有复杂形状的“选项”类型(对象)参数。
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;
但是,如果我使用 typescript 编写测试,我将不得不编写一个包含所有接口(虚拟)成员的完整 option1 对象,尽管大多数会被忽略,它会使读者偏离真正的目标测试。
是否有解决方法或我应该改变我的想法?
【问题讨论】: