是否可以修改源代码以使单元测试正常工作



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

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

不知道你的设置是什么,但为什么不让卡生成器成为你类的可插拔组件,并伪造一个保证返回三张匹配卡的类呢?

然后,您可以伪造一个类,该类保证返回三张不匹配的卡。

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

最新更新