对于String,建议使用断言的assertTrue()或assertEquals()的JUnit?

时间:2014-07-18 09:46:39

标签: java junit

我的代码如下所示

@Test
public void testMyMethod(){
    MyClass mc = new MyClass();
    String exeVal="sometext some text";
    String x=mc.exampleMethod();

    // Assertion type 1
    Assert.assertEquals(exeVal,x);
    //Assertion Type 2
    Assert.assertTrue(exeVal.equals(x));
}

我想知道哪种方法最好。

2 个答案:

答案 0 :(得分:18)

首选类型1是因为当它们不匹配时会收到断言消息。

org.junit.ComparisonFailure: expected: <[foo]> but was: <[bar]>

VS

java.lang.AssertionError

答案 1 :(得分:0)

首选类型1,原因如下。

  • 它为您提供了更好的错误消息。

ex:-“预期[3]但发现[4]”。第二种方法将评估条件,并将显示“ expected [true] but found [false]”之类的消息,并且用户将无法获得评估的值。

  • AssertEquals为null安全且assertTrue无效