2013-10-23 50 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簡單得多。