Jestjs 如何在异步jest测试中传入done()参数。每种情况
我正在尝试编写一个jest测试用例来测试一个异步方法,我想传入Jestjs 如何在异步jest测试中传入done()参数。每种情况,jestjs,ts-jest,Jestjs,Ts Jest,我正在尝试编写一个jest测试用例来测试一个异步方法,我想传入done()参数,以便jest在结束测试之前等待它被激发,但是,我不确定把它放在哪里 有什么想法吗 const testcases = [ [ 'Crew', [1,2,3], Enum.Level1 ], [ 'Staff', [4,5,6],
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();
}
);
});
只是不确定在使用
测试时如何执行。每个
方法。我使用命名参数,我可以添加done()
方法作为最后一个函数参数。例如:
const测试用例:{
typeName:string;
初始值:字符串[],
类型:LevelType
}[] = [
{
typeName:'船员',
初始值:[1,2,3],
类型:Enum.Level1
},
{
typeName:'Staff',
初始值:[4,5,6],
类型:Enum.Level2
},
];
test.each(测试用例)(
'应该能够加载不同的案例%p',
//必须使用'any'表示'done',因为TypeScript推断出错误的类型:
({typeName,initalVals,type},done:any)=>{
//一些更新mobx存储状态的调用
什么时候(
()=>mobxstoreProperty.length==initalVals.length,
() => {
//我的主张
完成();
}
);
}
);
我还没有测试您是否可以添加
done()
方法作为带有数组参数的最后一个参数,但这也可能有效。若要传递和计算done
,则done
回调应该是函数中测试用例参数的最后一个参数
此外,这里还介绍了在使用测试时如何处理打字。typescript中的每个方法:
//位于https://github.com/DefinitelyTyped/DefinitelyTyped/issues/34617
每个([1,2,3])(
'虚拟:%d',
(num:number,done:jest.DoneCallback)=>{
完成();
},
);
@unatenbbreakfast这能回答你的问题吗?如果是,请接受答案。