假设我有两个课程,每个课程都经过全面测试。虽然有重复,所以我将公共代码重构为一个新类。我应该对新课程进行单元测试吗?如果是这样,怎么样?
以下是我可以看到的选项:
答案 0 :(得分:2)
虽然有重复,所以我将公共代码重构为一个新类。
我认为这意味着两个旧类现在继承了新类的常见行为。如果是这种情况,那么旧的测试用例应该已经测试了常见行为,并且可能不需要编写单独的测试。
如果不是这种情况(就像你正在创建一个实用程序类,其方法由两个原始类调用),那么我可能会将测试移到他们自己的单元测试类中,所以他们只需要在一个地方。
答案 1 :(得分:1)
如果是我,那么我会给新课程一套自己的单元测试。这些测试将是先前测试的复制+粘贴,它们针对相同的代码运行。
虽然你正在复制工作,但从长远来看,你需要考虑这个新类如何改变,并在新的单元测试类/夹具中进行这些测试对你来说更清洁。
答案 2 :(得分:1)
如果您的重构类已被现有测试覆盖,那么您可能没问题。
看看你的选项,我也会做4号。如果你做了一些重构,你可能会做出比以前更通用的东西。在这种情况下,您可以以通用方式测试通用功能。如果您的重构解决方案更通用,我会做4。如果它只是将代码移动到DRY,我可能会做1。