【发布时间】:2016-01-05 15:38:08
【问题描述】:
作为单元测试的一部分,我想根据实际 API 响应中的实际响应来验证预期响应。
所以我有这个:
期望:
因为纳税人可以被视为受抚养人而被取消资格
我想反对这个:
实际:
因为您可以被声称为受抚养人而被取消资格
来自已编译二进制文件的 API 响应。
由于这些文本足够接近,我想通过我在测试中的这个断言:
Assert.assertEquals(titleText.toLowerCase(), t.toLowerCase(), "Did not match!");
由于该断言显然没有通过,因为 2 段文本不相等。
我尝试了这个:
Assert.assertTrue(titleText.toLowerCase().contains(t.toLowerCase()));
但是测试仍然失败....我怎样才能使这个测试通过?任何建议将不胜感激。
【问题讨论】:
-
断言如何?它们要么相等,要么不相等。当然测试仍然失败,因为中间有单词,所以它不“包含”那个确切的字符串。您需要在此处编写自己的逻辑。用单词拆分较小的字符串,检查每个字符串的出现,并检查与另一个字符串有多少差异。如何?这取决于你的要求,所以你不能问我们这个
-
assertTrue(titleText.startsWith("disqualified because ") && titleText.endsWith("can be claimed as a dependent"))? -
感谢@TagirValeev,但我想要更通用的东西来处理我的所有测试
-
感谢@Stultuske 我正在研究进行字符串数组比较,如果此字符串数组中的 2 个或更多项不相等,我可能无法通过测试。
标签: java unit-testing junit testng