0

我想不出在 JavaScript 中我需要一个单元测试来等待回调完成的情况。

单元测试是关于测试最小的部分,即单元。所以我会写测试:

  • 对于我正在测试的功能
  • 对于回调函数
  • 使用模拟(或间谍)检查函数是否正确调用回调

但我在 Jasmine 或 Mocha 等测试框架中看到它们允许异步测试。我想这在集成测试(或 BDD)中有意义,但在单元测试中没有意义。您是否有需要异步测试的单元测试示例?

4

1 回答 1

1

我同意你的观点,异步测试与行为驱动开发 (BDD) 测试更相关,在这些测试中你正在创建真实世界的用例,而不是通过每个对象的方法列表并检查它们是否按预期执行。

至于单元测试,我想说仍然有异步测试的地方。假设您正在测试一个类,并且其中一个方法对 REST 入口点执行 AJAX 请求以获取一些数据并返回结果(例如验证用户),这仍然是单个计算单元,即:

Auth.validate({user: "smithj", pass: "mypwd"});

但是,如果您同步执行测试,您将无法检查该方法是否已正确执行,因为您将在从远程入口点获得响应之前检查结果。

于 2013-05-29T05:50:57.293 回答