是否可以修改源以使单元测试工作?

时间:2015-04-12 22:45:55

标签: java unit-testing junit4

我有一个我想要进行单元测试的方法,一个检查三张牌之间匹配的方法。因为这些卡是随机生成的,所以无法设置我知道将要匹配或将不匹配的三张卡。我需要这样做来对我的isMatch()方法进行单元测试。

是否可以更改我的Card类以添加一个方法来显式设置其值,以便对其进行单元测试?一般情况下,对源代码进行少量添加以使单元测试成为可能或者是否有更好或正确的方法可以接受?

2 个答案:

答案 0 :(得分:1)

不知道您的设置是什么,但为什么不让卡片生成器成为您班级的可插拔组件,而fake哪个班级可以保证返回三张匹配的卡?

然后你可以fake一个保证返回三张不匹配的牌的类。

答案 1 :(得分:-4)

没有。您不应该修改单元测试的代码并将其修改回来,因此"代码运行"。对于上述问题,您有@Before。围绕这个设计你的课程。构建三张确定性卡片并进行比较。使用此注释,您可以测试代码的功能,而无需修改代码以进行单元测试"。