Chai BDD 风格 'should' 是异步的吗?
Is the Chai BDD style 'should' async?
我的单元测试遇到了很多奇怪的问题(例如 or here),我想排除这种可能性。所以,这是我潜在的愚蠢问题:
来自 Chai 的 should
样式是阻塞的还是异步的?在某种 should
链之后进行 done()
调用是否安全,或者是某种理想的解决方案回调?
我很确定这不是问题所在。但似乎我每天都会发现一个由 Node 的非阻塞 IO(或者更确切地说,我缺乏使用它的经验)引起的新问题,我想检查一下我没有在这里犯错误。
我对 .should
有过奇怪的体验,因为它需要将自己附加到您正在 should
的对象上。我对 expect()
有更好的体验。而sync/async依赖测试运行ner。 mocha
同步。每个带有 expect()
的断言都是顺序 运行,并且是原子的,因此那里没有异步操作。 should
.
也是如此
我更喜欢 expect 而不是 should 因为 something.should 如果某些东西未定义会抛出错误。我的偏好没有其他原因。
既不应该也不期望使测试异步。 done 是使测试异步的原因,并且 done 应该在承诺解决和拒绝块(不仅仅是一个)中被调用。你可能想在完成失败之前调整摩卡(我假设摩卡)超时时间。希望这有帮助。
我的单元测试遇到了很多奇怪的问题(例如
来自 Chai 的 should
样式是阻塞的还是异步的?在某种 should
链之后进行 done()
调用是否安全,或者是某种理想的解决方案回调?
我很确定这不是问题所在。但似乎我每天都会发现一个由 Node 的非阻塞 IO(或者更确切地说,我缺乏使用它的经验)引起的新问题,我想检查一下我没有在这里犯错误。
我对 .should
有过奇怪的体验,因为它需要将自己附加到您正在 should
的对象上。我对 expect()
有更好的体验。而sync/async依赖测试运行ner。 mocha
同步。每个带有 expect()
的断言都是顺序 运行,并且是原子的,因此那里没有异步操作。 should
.
我更喜欢 expect 而不是 should 因为 something.should 如果某些东西未定义会抛出错误。我的偏好没有其他原因。
既不应该也不期望使测试异步。 done 是使测试异步的原因,并且 done 应该在承诺解决和拒绝块(不仅仅是一个)中被调用。你可能想在完成失败之前调整摩卡(我假设摩卡)超时时间。希望这有帮助。