Unit testing 使用异步方法进行单元测试

Unit testing 使用异步方法进行单元测试,unit-testing,Unit Testing,我在测试异步方法时遇到问题。测试异步方法、单元测试和集成测试的正确方法是什么 我听说过测试双重性,从异步角度看这意味着什么?对于命中 网络资源 文件系统 数据库 …对于单元测试,将其替换为双测试。想想“特技替身”,因为他们暂时站在真实的东西。我们这样做是为了单元测试,因为这些资源是不可靠的、持久的(这会导致测试相互影响)或缓慢的。所谓慢,我的意思是单元测试应该不超过100毫秒 其他不适用于此类资源的异步方法可以进行单元测试。将它们放入带有超时的轮询循环中。这也是在集成测试或契约测试(检查真实

我在测试异步方法时遇到问题。测试异步方法、单元测试和集成测试的正确方法是什么


我听说过测试双重性,从异步角度看这意味着什么?

对于命中

  • 网络资源
  • 文件系统
  • 数据库
…对于单元测试,将其替换为双测试。想想“特技替身”,因为他们暂时站在真实的东西。我们这样做是为了单元测试,因为这些资源是不可靠的、持久的(这会导致测试相互影响)或缓慢的。所谓慢,我的意思是单元测试应该不超过100毫秒


其他不适用于此类资源的异步方法可以进行单元测试。将它们放入带有超时的轮询循环中。这也是在集成测试或契约测试(检查真实通信和伪造通信是否匹配)中进行联网之类的工作的方式。

您是否有任何代码示例来显示您尝试测试的对象/方法的类型?此外,如果您正在测试某个外部对象(网络、文件系统、数据库)这更像是一个集成测试,而不是单元测试。单元测试应该单独测试系统的一部分,模拟出exernals以返回预期的数据。您还应该让mock返回异常/无效数据,以检查是否也处理了这些异常/无效数据。