在webdriver和TestNG中出现断言问题

时间:2013-11-25 14:59:13

标签: java selenium-webdriver testng

我在做断言时遇到有线情况。 我在每个列表中断言值(列表应该包含相同的值,即使它不是相同对象的列表)

这是我的断言代码:

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());

1 个答案:

答案 0 :(得分:1)

方法getName()getText()都返回字符串,因此(假设您的问题只是前导和尾随空格),您需要做的就是添加.trim(),如下所示:< / p>

Assert.assertEquals(l.get(i).getName().trim(),rst.get(i).getText().trim());

同样,您想要做的是测试内存中的不同对象有意义地相等。这意味着您要使用assertEquals(),而不是assertSame()

  • assertEquals()断言两个对象(可能是也可能不是内存中的不同对象)有意义相等(或者,就像你说的那样,具有相同的值)。
  • assertSame()断言两个对象实际上是内存中的同一个对象 - 所以如果你在两个具有“相同值”但不是同一个对象的对象上运行assertSame()在内存中,您的测试将失败。