测试互斥的正确断言

时间:2014-09-11 09:02:03

标签: java testing junit

我的代码中有一个循环,它遍历一组字符串。然后将所述字符串传递给其他几个函数。

在我的测试中,我基本上模拟了代码流,并在我期望它访问的每个方法的开头断言,如果字符串是正确的。

但我只能写一次测试方法。这意味着我必须执行以下操作来捕获所有不同的字符串:

assertTrue(string.equals("test1") || string.equals("test2") || string.equals("test3") || ...);

但是,如果这些字符串中的一个或多个未成功传递到循环的列表,则会出现问题。由于这是一个OR语句链,只要有1个正确的字符串,它就会成功,无论是否缺少任何其他字符串。这是一个问题。

我无法模拟循环,我只能模拟每次接收数据的函数。

有没有办法解决这个问题?

编辑:一些澄清。

我从一个字符串列表开始。

此列表循环播放,这意味着每个字符串实例都将通过一系列函数。然后是下一个字符串。等等。

在测试中,我可以为字符串经过的方法编写虚拟对象。这意味着我覆盖了实际代码的行为并发送了我自己的自定义返回。这必须是正确的,因为接下来的功能必须正确处理我刚发送给它的内容。

但是,当我使用虚拟数据开始测试时,它将执行循环,这意味着多次调用相同的函数,每次都使用不同的字符串。我不能只对其中一个字符串进行1次测试,因为下一个循环将在下一个字符串上失败。

0 个答案:

没有答案
相关问题