2014-05-12 36 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"));