2014-05-12 31 views
0

我有一个方法(par.getstatus)输出的消息看起来完全像这样: 3 :: 0 :: P:3 :: C:2 :: S:1 :: M :1 :: d:0 :: A:0 ::问:0null声明Junit输出不起作用

问题是,当我写:

String s = par.getStatus(3); 
    assertTrue(s == "3::0::P:3::C:2::S:1::M:1::D:0::A:0::Q:0null"); 

它不返回true。我知道字符串是正确的,因为我将它打印到控制台,并直接复制并粘贴,检查我是否多次这么做。并且要检查它不是我正在使用的assertTrue方法是错误的,我写道:

String d = "rr"; 
      assertTrue(s == "rr"); 

它返回true。

有人说这可能是空导致的问题,所以我删除了,但仍然没有运气。有人知道这里可能会出现什么问题吗?感谢

+1

请在SO上搜索答案......您绝不应该在使用==比较运算符的java中比较字符串(或者确实是大多数对象)。使用'aString.compareTo(otherString)'或'aString.equals(otherString)'。 – jgitter

+0

谢谢我做了搜索,但错过了其他线程,下次看起来会更困难。谢谢你的帮助。 – user1319364

回答

0
s == "3::0::P:3::C:2::S:1::M:1::D:0::A:0::Q:0null" 

==比较两个字符串的引用和这两个字符串是不一样的对象。

使用String.equals()来比较两个字符串的内容:请看this question

assertTrue(s.equals("3::0::P:3::C:2::S:1::M:1::D:0::A:0::Q:0null"));