2017-09-26 5 views
1

String에서 주어진 문자의 발생을 계산하는 메소드를 만들었습니다. assertEquals()와 Assert.assertEquals() 사이의 JUnit 테스트 차이

public Integer numberOf(String str, Character a){} 

나는 사용하여 정상적으로 테스트하려고 :

@Test 
public void test1(){ 
    Integer result = oc.numberOf("Lungimirante", 'u'); 
    Assert.assertEquals(1, result); 
} 

을하지만 이클립스를 뿌려줍니다.

내가 봤와 나는 내가 사용에 필요한 테스트 발견 :

assertEquals(1, result); //it works correctly 

대신 : Assert.assertEquals(1, result);

당신이 왜 나를 설명 할 수 있습니까? 그 차이점은 무엇입니까?

+0

가'[., 같음 등] 주장'메소드 호출은 정적 수입에서 온 'junit.framework.Assert' 클래스 (또는'org.junit.Assert' 등). 아마도'import static junit.framework.Assert. *'또는 유사한 문장을 가지고 있을지 모르지만 실제로'junit.framework.Assert'를 가져 오지 않았습니다. – Mena

+0

@Mena : 예'assertEquals'를 사용합니다. 가져 오기 :'import static org.junit.Assert.assertEquals; ' 그리고 전에'Assert.assertEquals' 만 가져 오기'org.junit.Assert;' – SwampThing

+0

나는 오토 박싱을 싫어합니다. 이것은 이유 중 하나입니다. 'NullPointerExceptions'를 기대하지 않는 곳은 다른 곳입니다. 이 때문에 나는 이클립스가 에러로 오토 박싱의 발생을 볼 수 있도록 설정했다. (그리고 IMHO는 이것에 대한 옵션이 있다는 것을 말해 주지만, 내 의견에는 잘못이 아니다) – Lothar

답변

2

이에 대한 모든 세부 사항을 제공하지 않습니다

이클립스를 뿌려줍니다. 나는 그것이 Ambiguous method call 의심

... INT을 assertEquals의 일부가되는 다수의 '형태', 어떤 길이, 어떤 객체에 의해 발생

enter image description here

을 ... , 일부 문자열 등

그래서, 당신은 당신이 사용하고자하는 하나에 대해 명시해야합니다. 그들은 유형 expectedactual 인수의에 대한 명시 적 때문에 예를 들어, 다음 assertEquals 통화를 모두 컴파일 :

Integer result = oc.numberOf("Lungimirante", 'u'); 
Assert.assertEquals(new Integer(1), result); 
Assert.assertEquals(1, result.intValue()); 
+0

: 불평 : _ assertEquals (Object, Object)는 Assert_ – SwampThing

+0

@SwampThing에 대해 모호합니다. 그렇기 때문에 내 대답이 귀하의 질문과 관련이 있다고 가정합니다. 'assertEquals' 호출을 (내 대답에 제공된 예제를 사용하여) 조정하면'expected' 및'actual' 인수의 유형에 대해 명확히 알 수 있습니다. – glytching

+0

당신의 제안에 잘 작동합니다. – SwampThing