2014-07-18 24 views
10

我的代码是像下面JUnit推荐assertTrue()或assertEquals()为String?

@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)); 
} 

我想知道这是最好的办法。

+1

这是相同的。 assertEquals()调用给定对象上的equals()方法。使用任何你喜欢的。 –

+2

完全基于可读性,我会去assertEquals()。 –

+1

@BartekMaraszek由于'assertEquals'会给你更清晰的反馈,所以我认为最好使用它。 –

回答

17

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

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

VS

java.lang.AssertionError 
相关问题