2017-05-24 7 views
0

私がテストしていメソッドはthis.dataだけである(以下れるのJUnit 4.12とジャクソンJUnitのテストケースの失敗:にjava.lang.AssertionError:予想ヌル、しかしだった:<null>

@Test 
public void testFailToGetDataAsString() { 
    Receipt receipt = new Receipt(null); 

    assertNull(receipt.getDataAsString()); 
} 

を使用していますヌルマップ):

public String getDataAsString() { 
    try { 
     return new ObjectMapper().writeValueAsString(this.data); 
    } catch (Exception e) { 
     return null; 
    } 
} 

は、最後に私がテストを実行し、「ヌル」は「<ヌル>」ではないことを確認してください。

答えて

4

getDataAsString()ではなく、それが"<null>"を言うと、それは当然のnullに等しくない文字列を返し、nullを返しません。例外をキャッチするときにnullを返す代わりに、writeValueAsString()がこのカスタムnull型を返す場合はnullも返すべきです。

1

私は最終的にメソッドのコードを変更:これは動作し、以前のものではない、なぜ私は本当に知らない

public String getDataAsString() { 
    try { 
     if (this.data != null) { 
      return new ObjectMapper().writeValueAsString(this.data); 
     } 
    } catch (Exception e) { 
    } 
    return null; 
} 

return new ObjectMapper().writeValueAsString(this.data);が例外をスローしませんので、

関連する問題