我有很多布尔方法,比如boolean isPalindrome(String txt)
要测试。
目前,我用 * 两个 * 参数化测试来测试这些方法中的每一个,一个用于true
结果,一个用于false
结果:
@ParameterizedTest
@ValueSource(strings = { "racecar", "radar", "able was I ere I saw elba" })
void test_isPalindrome_true(String candidate) {
assertTrue(StringUtils.isPalindrome(candidate));
}
@ParameterizedTest
@ValueSource(strings = { "peter", "paul", "mary is here" })
void test_isPalindrome_false(String candidate) {
assertFalse(StringUtils.isPalindrome(candidate));
}
相反,我想在 * 一个 * 参数化方法中测试这些,就像下面的伪Java代码:
@ParameterizedTest
@ValueSource({ (true, "racecar"),(true, "radar"), (false, "peter")})
void test_isPalindrome(boolean res, String candidate) {
assertEqual(res, StringUtils.isPalindrome(candidate));
}
是否有一个ValueSource用于此?或者是否有其他方法以简洁的方式实现此目的?
1条答案
按热度按时间mepcadol1#
通过来自Dawood ibn Kareem的非常有用的评论(关于问题),我得到了一个涉及
@CsvSource
的解决方案:我挺喜欢的:虽然代码使用字符串来表示布尔类型,但它非常紧凑,并将IMHO所属的东西放在一起。
在此阅读有关
@CsvSource
的信息。