单元测试验收测试?

dev*_*ium 2 tdd unit-testing acceptance-testing

我目前正在进行一些验收测试,这将有助于推动我即将开展的计划的设计.一切似乎都很好,除了我已经意识到验收测试有点复杂,也就是说,尽管它们在概念上很简单,但它们需要相当多的棘手代码才能运行.我需要为我的验收测试做一些"帮助"课程.

我的问题是如何开发它们:

  1. 对我的验收测试进行单元测试(这看起来很奇怪 - 有人做过这样的事吗?)
  2. 为这些帮助类进行单元测试.在完成了这些帮助类的所有代码之后,我可以通过并开始研究我的系统的真实单元测试.使用这种方法时,你会把辅助类放在哪里?在测试项目或实际项目中?它们不一定依赖于测试/模拟框架.
  3. 还有其他想法吗?

Car*_*ter 5

朋友非常热衷于接受测试会告诉您代码是否损坏,而单元测试会告诉您哪些内容被破坏; 这些是互补和有价值的信息.验收测试最好让你知道什么时候完成.

但要完成,你需要沿途的所有部分; 你需要他们工作,这就是单元测试的优点.完成测试 - 首先,他们还将引导您更好地设计(不仅仅是有效的代码).一个好的方法是写一个大画面的验收测试,并对自己说:"当这个过去时,我已经完成了." 然后努力使其通过,工作TDD:编写一个小单元测试,以获得使AT通过所需的下一小部分功能; 编写代码使其通过; 重构; 重复.随着你的进步,不时运行AT; 你可能会发现它在以后和测试后期失败了.并且,如上所述,当它过去时,你已经完成了.

我认为单元测试验收测试本身并没有多大意义.但单元测试其辅助类 - 实际上,将它们编写为测试优先 - 是一个非常好的方法.您可能会找到一些"仅供测试"编写的方法,即使您没有这样做,即使您不这样做,您仍然想知道您的AT使用的代码是否正常工作.

如果您的AT足够简单,那么"测试代码测试,代码测试测试"的古老格言可能已经足够了 - 当您进行测试失败时,可能是因为代码错误或者测试错误,它应该很容易找出哪个.但是当测试很复杂时,对其基础进行良好测试也是很好的.