JUnit 프레임 워크에는 2 개의 Assert
클래스 (다른 패키지로 제공)가 포함되어 있으며 각 클래스의 메소드는 매우 유사합니다. 아무도 이것이 왜 설명 할 수 있습니까?
내가 말하는 클래스는 다음 junit.framework.Assert
과 같습니다 org.junit.Assert
.
답변
JUnit 3의 이전 방법은을 확장하여 테스트 클래스를 표시하는 것이 었습니다 junit.framework.TestCase
. 그것은 상속 junit.framework.Assert
되었고 테스트 클래스는 이런 방식으로 assert 메소드를 호출하는 능력을 얻었습니다.
JUnit의 버전 4부터 프레임 워크는 Annotations
마킹 테스트에 사용 합니다. 따라서 더 이상 확장 할 필요가 없습니다 TestCase
. 그러나 이것은 어설 션 방법을 사용할 수 없다는 것을 의미합니다. 그러나 새 Assert
클래스를 정적으로 가져올 수 있습니다 . 그렇기 때문에 새 클래스의 모든 어설 션 메서드는 정적 메서드입니다. 따라서 다음과 같이 가져올 수 있습니다.
import static org.junit.Assert.*;
이 정적 가져 오기 후 접두사없이이 메소드를 사용할 수 있습니다.
재 설계시 org.junit
패키지 이름 지정에 대한 일반적인 규칙을 따르는 새로운 패키지로 이동했습니다 .
답변
JUnit 3.X : junit.framework.Assert
JUnit 4.X : org.junit.Assert
특히 주석 지원으로 JDK5 이상을 실행하는 경우 최신 버전을 선호하십시오.
답변
기능적인 변화는 사실에있다 : org.junit.Assert
당신이 2 개의 인수를 사용하는 경우 불평 assertEquals()
으로 float
또는 double
동시에, junit.framework.Assert
자동으로 오토 박싱 할 것입니다.
답변
나는 그들이 리팩토링 junit.framework
하고 org.junit
있고 junit.framework.Assert
이전 버전과의 호환성을 위해 유지 된다고 생각 합니다.
답변
대략적인 소스 코드 비교를 수행했으며 심각한 변경 사항은 없습니다. 많은 의견이 추가되었습니다org.junit.Assert
되었고 일부 리팩토링이 완료되었습니다. 유일한 변경 사항은와의 비교입니다 Arrays
. 코드 정리가 있지만 기능 변경은 없습니다 .