0

ApprovalTests看起来非常适合遗留代码,但问题是我的遗留代码在应用服务器中运行,重新部署应用程序需要 2 分钟以上的时间。因此,我担心运行批准测试的反馈循环会让我不想经常运行它。我可能最终会更改更多代码而无需经常进行测试,并且可能会进入“更改->测试->失败->恢复”的重复模式。

谁能给我关于如何将 ApprovalTests 与需要很长时间部署的遗留代码一起使用的建议?这正是我应该期望处理的,还是我以错误的方式编写这个测试?

4

2 回答 2

1

你想在你的项目中测试什么?

如果你想用 Approval Tests 测试表单,你应该想办法将依赖项与应用程序分开,并允许测试只针对代码运行。解决此问题的最佳方法是开始将较小的代码块重构为可单元测试的块,然后将显示与数据源和依赖项分开的路径将自行显现。

该视频非常适合旧版重构: http ://www.youtube.com/watch?v=aWiwDdx_rdo (观看整件事,值得一试)

该视频展示了一种将数据加载与项目分开的好方法: http ://www.youtube.com/watch?v=5gIeJ6z82Pk

于 2013-01-10T17:07:58.430 回答
0

我从产品的创建者那里得到了答案:

所以你关心的是“change->test->fail->revert”并且会发生这种情况,但是通过更小和更仔细的更改,你应该能够取得良好的进展,失败不应该是规则,而是例外。另外,请记住,在遗产中,座右铭是更好的,而不是好的。使用此测试,直到您重构到足以获得不需要应用服务器的测试为止。然后你移动得更快。批准测试本身不需要很大或很慢,它只是验证。测试的大小是大的还是慢的,虽然approvaltests 可以很好地解决这个问题,但这绝不是你想要的测试类型的建议或建议。

然后我问:

您是说“approvaltests 让您以这种方式进行测试,但这不是使用approvaltests 的好方法”吗?如果我正确地解释了这一点,那么更好的方法是什么?

他回答说:

是的。批准测试让您以这种方式进行测试。这不是单元测试的好方法。这很可能是您目前拥有的单元测试的最佳方式。使用它,直到您重构为更好的单元测试方式(不需要服务器的方式)

希望这可以帮助其他有同样问题的人。

于 2013-01-09T20:07:01.763 回答