2013-10-23 29 views
2

我有一个测试,在完成后返回一些值。返回的值是String,并且可以根据测试中的某些条件,具有几个可能值之一。 但在assert声明中,我只能检查其中一个Expected值不是两者。如何声明接受JUnit中多个可能值中的一个值

我该怎么做?谢谢。

+1

[Hamcrest的多重正确结果(有没有or-matcher?)](http://stackoverflow.com/questions/152714/multiple-correct-results-with-hamcrest-is-there-a -or-matcher) – Joe

+0

这个问题不是任何Hamcrest问题的重复,因为OP没有提及使用Hamcrest,Hamcrest也不是唯一的解决方案。 – Raedwald

回答

0

在OR中使用布尔表达式不起作用?

+0

这是我第一次使用junit进行测试。你能再详细一点吗? –

+0

如果我理解你的问题,你有一个函数可以根据传入的参数从有限的可能值集合中返回一个值。你有兴趣检查函数是否返回其中一个,(不管是哪一个:我不是当然,我明白这一点,这是一个相当弱的测试),而不是别的。所以你可以做一个布尔断言并检查result.equals(possibleValue1)|| result.equals(possibleValue2)... – ilmirons

+0

更好的测试将检查正确的值是否返回w.r.t.输入所有可能的回报值 – ilmirons

0

我会用AssertJ这个

assertThat(value).isIn(expected1, expected2, expected3); 

的代码比Hamcrest简单得多。