JUnit 프레임 워크는 2 개의 Assert
클래스 (분명히 다른 패키지에 있음)를 포함하며 각 메소드는 매우 유사하게 보입니다. 아무도 왜 이것을 설명 할 수 있습니까?2 JUnit Assert 클래스 간의 차이점
내가 언급 한 클래스는 junit.framework.Assert
및 org.junit.Assert
입니다.
JUnit 프레임 워크는 2 개의 Assert
클래스 (분명히 다른 패키지에 있음)를 포함하며 각 메소드는 매우 유사하게 보입니다. 아무도 왜 이것을 설명 할 수 있습니까?2 JUnit Assert 클래스 간의 차이점
내가 언급 한 클래스는 junit.framework.Assert
및 org.junit.Assert
입니다.
(JUnit 3의) 이전 방법은 junit.framework.TestCase
을 확장하여 테스트 클래스를 표시하는 것이 었습니다. junit.framework.Assert
자체를 상속하고 테스트 클래스는 assert 메서드를 이런 식으로 호출하는 기능을 얻게됩니다.
JUnit의 버전 4부터 프레임 워크는 마킹 테스트에 Annotations
을 사용합니다. 따라서 더 이상 TestCase
을 확장 할 필요가 없습니다. 그러나 이것은 assert 메서드를 사용할 수 없다는 것을 의미합니다. 그러나 새로운 Assert
클래스를 정적으로 가져올 수 있습니다. 그래서 새로운 클래스의 모든 assert 메서드가 정적 메서드입니다. 따라서 다음과 같이 가져올 수 있습니다.
import static org.junit.Assert.*;
이 정적 가져 오기 후에는 접두사없이이 메서드를 사용할 수 있습니다.
재 설계시 패키지 이름 지정의 일반적인 규칙을 따르는 새 패키지 org.junit
으로 이동했습니다.
이 답변은 완전히 정확하지 않습니다. 클래스 junit.framework.Assert 및 org.junit.Assert에서 정적 가져 오기를 만들 수 있습니다. 그러나 org.junit.Assert 클래스를 사용하는 것이 더 새롭고, 약간 재 작성되었으며, 아마 대체 클래스로 사용되기 때문에 아마 좋은 생각입니다. –
저는 리팩토링이 junit.framework
에서 org.junit
및 junit.framework.Assert
에서 이전 버전과의 호환성을 위해 유지되고 있다고 생각합니다.
의 JUnit 3.X : junit.framework.Assert
의 JUnit 4.X : org.junit.Assert
특히 JDK5를 실행하는 경우, 최신 하나의 선호 및 주석을 지원하는 높은.
거친 소스 코드를 비교했는데 심각한 변경 사항이 없습니다. org.junit.Assert
에 많은 댓글이 추가되었으며 일부 리팩토링이 완료되었습니다. 유일한 변경 사항은 Arrays
과의 비교입니다. 몇 가지 코드 정리가 있지만, (imho) 기능 변경이 없습니다.
나는 @David Moles가 정확하다고 믿습니다. 이것은 기능적 변화가 될 것입니다. – orbfish
기능 변경 사실이있다 : 당신이 float
또는 double
와 2 개의 인수를 assertEquals()
를 사용하는 경우 junit.framework.Assert
이 자동으로 오토 박싱 반면 org.junit.Assert
는 불평 할 것이다.
Intellij IDEA에서는 '편집기 -> 일반 -> 자동 가져 오기 -> 가져 오기 및 완료에서 제외'의 정적 가져 오기 드롭 다운에서'junit.framework. *'를 제외 할 수 있습니다. – jordanpg