我有一个方法返回带参数的字符串(" toto%s"," tata%s"等)我想测试返回的字符串而不关心%s替换。
示例:
String testedString = RuntimeEnvironment.application.getString(R.string.my_string_with_parameter);
assertEquals(testedString, returnedString);
失败原因是:
预期:STARTS IN%s
实际:在321天内开始
但我无法在测试中知道%s被" 321天"替换。
有没有办法正确测试?
答案 0 :(得分:1)
考虑
assertThat(testedString, startsWith("STARTS IN"));
测试结果的固定部分。
为了对此进行全面测试,您需要确保测试中的代码返回插入的时间值的固定值。 我不熟悉执行的代码,但可能有一些方法可以控制和/或模拟这种行为。
答案 1 :(得分:0)
这样的事情怎么样?
public void stringIsCorrect(String desiredSubstring, String generatedString){
assertTrue(generatedString.indexOf(desiredString) != -1);
}
如果您需要它更灵活,可以用List替换第一个参数并循环遍历它们,以及使用Apache StringUtils检查子字符串是否显示正确的次数。