gpt4 book ai didi

jestjs - 如何在异步 Jest 测试中传入 done() 参数。每个案例

转载 作者:行者123 更新时间:2023-12-03 16:37:18 26 4
gpt4 key购买 nike

我正在尝试编写一个测试异步方法的 Jest 测试用例,我想传入 done()参数所以 jest 在结束测试之前等待它被触发,但是,我不确定把它放在哪里。
有任何想法吗?

const testcases = [
[
'Crew',
[1,2,3],
Enum.Level1
],
[
'Staff',
[4,5,6],
Enum.Level2
]
];
test.each(testcases )(
'Should be able to load differing cases %p',
(
typeName: string,
initalVals: string[],
type: LevelType
) => {
// some call that updates mobx store state

when(
() => mobxstoreProperty.length == initalVals.length,
() => {
// my assertions

done();
}
);
}
);
对于单个 Jest 测试,我可以这样做:
test('my single test', done => {
// some call that updates mobx store state

when(
() => mobxstoreProperty.length == initalVals.length,
() => {
// my assertions
done();
}
);
});
只是不确定在我使用 test.each 时该怎么做方法。

最佳答案

我使用命名参数,我可以添加 done()方法作为最后一个函数参数。例如像这样:

const testcases: {
typeName: string;
initalVals: string[],
type: LevelType
}[] = [
{
typeName: 'Crew',
initalVals: [1,2,3],
type: Enum.Level1
},
{
typeName: 'Staff',
initalVals: [4,5,6],
type: Enum.Level2
},
];
test.each(testcases)(
'Should be able to load differing cases %p',
// Must use `any` for `done`, as TypeScript infers the wrong type:
({typeName, initalVals, type}, done: any) => {
// some call that updates mobx store state
when(
() => mobxstoreProperty.length == initalVals.length,
() => {
// my assertions

done();
}
);
}
);

我还没有测试你是否可以添加 done()方法作为带有数组参数的最后一个参数,但也许这也有效。

关于jestjs - 如何在异步 Jest 测试中传入 done() 参数。每个案例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59940440/

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