测试未使用Jest调用的回调



有没有一种方法可以测试是否使用Jest调用回调?

例如:

o.subscribe(cb, cbError, cbComplete);

cbcbComplete回调应激发,而cbError回调不应激发。

有没有一种方法可以测试cbError从未被调用?

Per@Richard的评论:

let error = false;
let cbError = ()=> { error =true };
let cbComplete = ()=>{
complete = true;
expect(complete).toBeTruthy();
expect(error).toBeFalsy();
done(); //This is the async callback that Jest provides to let Jest know that the test is done.
}

在完整的回调中,我们测试错误仍然是false。由于Observable完成后为false,因此cbError回调从未被调用,因为该回调与其他回调互斥。

旁注

这类指示cbError没有被调用。通过设计,cbError和cbComplete回调是互斥的,但我们不能同时从jest调用done(),因为它在测试中等于一个竞赛条件,所以在这种情况下,我们必须信任设计。如果有人对此有任何其他想法,请留言评论。

最新更新