gpt4 book ai didi

unit-testing - 通过 typescript 使用部分形状进行单元测试

转载 作者:行者123 更新时间:2023-12-04 05:06:53 25 4
gpt4 key购买 nike

假设我想在 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 编写测试,我将不得不编写一个包含所有接口(interface)(虚拟)成员的完整 option1 对象,尽管大多数会被忽略,这会使读者偏离测试的真正目标。

有没有解决方法或者我应该改变我的想法?

最佳答案

您可以利用 typescript 的 Partial为了这。

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) {

}
}

关于unit-testing - 通过 typescript 使用部分形状进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37355719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com