我在做断言时遇到有线情况。 我在每个列表中断言值(列表应该包含相同的值,即使它不是相同对象的列表)
这是我的断言代码:
for (int i=0 ; i< rst.size(); i++)
{
Assert.assertSame(l.get(i).getName(),rst.get(i).getText());
以下是我的回复:
FAILED: srch("tsk", "http://frstmwarwebsrv2.orsyptst.com:9000/duobject? searchString=TSK&filtercheck=nameSWF&p.index=0&p.size=8")
java.lang.AssertionError: expected [TSK(ACE700J)(000)(ACE700JU00)(000)] but found [TSK(ACE700J)(000)(ACE700JU00)(000)]
}
我已根据建议改变了上述内容,我仍然遇到同样的错误:
Assert.assertSame ((l.get(i).getName().trim()), rst.get(i).getText().trim());
答案 0 :(得分:1)
方法getName()
和getText()
都返回字符串,因此(假设您的问题只是前导和尾随空格),您需要做的就是添加.trim()
,如下所示:< / p>
Assert.assertEquals(l.get(i).getName().trim(),rst.get(i).getText().trim());
同样,您想要做的是测试内存中的不同对象有意义地相等。这意味着您要使用assertEquals()
,而不是assertSame()
。