作为单元测试的一部分,我想根据实际 API 响应来验证预期响应与实际响应。
所以我有这个:
期望:
disqualified because taxpayer can be claimed as dependent
我想反对这一点:
实际:
disqualified because you can be claimed as a dependent
来自已编译二进制文件的 API 响应。
由于这些文本片段足够接近,我想通过我在测试中的断言:
Assert.assertEquals(titleText.toLowerCase(), t.toLowerCase(), "Did not match!");
显然这个断言没有通过,因为2段文字不相等。
我试过这个:
Assert.assertTrue(titleText.toLowerCase().contains(t.toLowerCase()));
但是测试还是失败了....我怎样才能让这个测试通过呢?任何建议将不胜感激。
最佳答案
您必须自己编写比较器。
class OwnComparator {
public static boolean checkThoseForEquality(String str1, String str2) {
// your logic goes here
}
}
使用它
assertTrue(OwnComparator.checkThoseForEquality(titleText, t);
您甚至可以将代码中的 toLowerCase()
移动到此比较器,从而使您的通用代码更短。
我不认为期望 testNG 完全实现您所说的“几乎相等”是有效的。
关于java - 如何断言或验证单元测试中 "almost"相同的 2 段文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33008604/