Jestjs 如何在异步jest测试中传入done()参数。每种情况

Jestjs 如何在异步jest测试中传入done()参数。每种情况,jestjs,ts-jest,Jestjs,Ts Jest,我正在尝试编写一个jest测试用例来测试一个异步方法,我想传入done()参数,以便jest在结束测试之前等待它被激发,但是,我不确定把它放在哪里 有什么想法吗 const testcases = [ [ 'Crew', [1,2,3], Enum.Level1 ], [ 'Staff', [4,5,6],

我正在尝试编写一个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();
       }
    );
});

只是不确定在使用
测试时如何执行。每个
方法。

我使用命名参数,我可以添加
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这能回答你的问题吗?如果是,请接受答案。