TDD多线程应用程序

时间:2012-06-12 16:49:02

标签: unit-testing tdd testdrivendesign

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

先谢谢。

1 个答案:

答案 0 :(得分:2)

简而言之,

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

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