在我正在研究的新代码库上使用jest
进行测试时,遇到了一个有趣的场景。
我研究了开玩笑的建议asynchronous testing,但我觉得它们没有考虑到从一个人调用的方法中触发异步代码的情况,因此使用了{ {1}}或返回诺言在这些情况下不起作用,因此创建了在某些诺言得以解决之前调用一些断言的情形。
在我的特定情况下,我也使用了moxios,但这仅在它存根axios要完成的实际工作并仍然返回承诺的意义上才有意义。
显而易见的解决方案是在做出断言之前允许短暂的延迟,这很好用。 readme详细介绍了问题和解决方案。
但是问题是,如果我正确理解了问题,那么我希望所有这样的结构的测试都不会失败,不会拖延。
但是,
done
pass
模式处理函数内部的诺言时使用then
进行测试,而当使用catch
{{ 1}}模式。fail
在一个人单独运行测试时会运行,而在整个测试套件运行时都会失败-我知道:(我基本上想知道是什么原因导致上述任何一种行为,以及是否缺少某些东西,因为它们看起来都那么武断。
答案 0 :(得分:0)
这取决于使用相同DOM进行测试的竞争条件。