【问题标题】:Is the Chai BDD style 'should' async?Chai BDD 风格“应该”是异步的吗?
【发布时间】:2016-01-06 20:57:40
【问题描述】:

我的单元测试遇到了很多奇怪的问题(例如参见herehere),我想排除这种可能性。所以,这是我可能很愚蠢的问题:

Chai 中的should 样式是阻塞还是异步的?在某种should 链之后进行done() 调用是否安全,或者是某种理想的解决方案回调?

我很确定这不是问题所在。但似乎我每天都发现一个由 Node 的非阻塞 IO 引起的新问题(或者更确切地说,我缺乏这方面的经验),我想检查一下我没有在这里犯错。

【问题讨论】:

  • 我对@9​​87654327@ 有过奇怪的体验,因为它需要将自己附加到您是should-ing 的对象上。我对expect() 有更好的体验。同步/异步取决于测试运行器。 mocha 是同步的。并且每个带有expect() 的断言都是顺序运行的,并且是原子的,所以那里没有异步操作。 should 也是如此。
  • 您要不要回答这个问题以便我接受?

标签: javascript node.js unit-testing chai


【解决方案1】:

我对@9​​87654321@ 有过奇怪的体验,因为它需要将自己附加到您是should-ing 的对象上。我对expect() 有更好的体验。同步/异步取决于测试运行器。 mocha 是同步的。并且每个带有expect() 的断言都是顺序运行的,并且是原子的,所以那里没有异步操作。 should 也是如此。

【讨论】:

    【解决方案2】:

    我更喜欢期望而不是应该,因为如果某些东西未定义,something.should 会抛出错误。我的偏好没有其他原因。

    也不应该期望使测试异步。 done 是使测试异步的原因,并且应该在 promise 解析和拒绝块(不仅仅是一个)中调用 done。您可能想在完成失败之前调整摩卡咖啡(我假设摩卡咖啡)超时时间。希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-10
      • 2014-08-13
      • 1970-01-01
      • 2020-06-06
      • 2014-05-19
      • 2015-11-22
      • 1970-01-01
      • 2016-02-18
      相关资源
      最近更新 更多