unit-testing - TDD 多线程应用程序

标签 unit-testing tdd testdrivendesign

有人可以阐明如何以纯 TDD 方式开发多线程功能吗? (可能有一些 C# 或 Java 示例)

提前致谢。

最佳答案

简而言之,

  • 首先断言在线程上运行的代码可以工作。功能明智。简单的单元测试 - 无线程。您可以提取一个类型(示例名称 Executor)来抽象线程方面。例如Execute(codeblock) 在生产中生成一个新线程,在该线程上执行代码块。在测试中,代码块在调用线程上执行 - 就像函数调用一样。
  • 接下来编写一个使用生产执行器的压力测试。生成多个线程并断言您的不变量。即无论产生多少线程,都必须/不可以发生的事情。

这还有一些其他细微差别 - 基于您是否生成多个线程(主动)或是否在不同线程上调用您(被动)。我建议您阅读 SteveFreeman 和 NatPryce 编写的 GOOS 书中与线程相关的章节

关于unit-testing - TDD 多线程应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11001106/

相关文章:

c# - 通过TDD创建映射函数 : Too Much Time Spent Writing Tests?

unit-testing - 解释 karma 单元测试时间

android - Android应用程序的自动化测试工具

unit-testing - BDD 是 TDD 的替代品吗?

entity-framework - 关于使用 Code First、Repository Pattern 和 n-Tier 的一些问题?

unit-testing - 如何通过单元测试让高效的代码出现?

ruby-on-rails - 从哪里开始测试驱动开发?

javascript - 如何让用户可以从 cli 安装我的测试包?

java - Mockito 无法模拟此类 : Mockito can only mock non-private & non-final classes