어설 션 vs. JUnit 어설 션
오늘 저는 JUnit 어설 션 대신 자바 어설 션이있는 JUnit 테스트 케이스를 보았습니다. 하나를 선호하는 데 중요한 장점이나 단점이 있습니까?
JUnit4에서 JUnit assert에 의해 발생 된 예외 (실제로 Error)는 java assert키워드 (AssertionError)에 의해 발생 된 오류 와 동일하므로 assertTrue차이점을 알 수없는 스택 추적과 정확히 동일 하고 다릅니다.
즉, 어설 션은 JVM에서 특수 플래그를 사용하여 실행해야하므로 JUnit 테스트가 실행될 때 누군가 해당 플래그로 시스템을 구성하는 것을 잊었 기 때문에 많은 테스트가 통과하는 것처럼 보입니다. 좋지 않습니다.
일반적으로이 때문에 JUnit을 사용하는 assertTrue것이 더 나은 방법 이라고 주장합니다 . 테스트 실행을 보장하고 일관성을 보장하고 (때로는 assertThatJava 키워드가 아닌 다른 assert를 사용 하거나) JUnit의 동작이 앞으로 변경 될 것입니다 (예 : 일종의 필터 또는 기타 향후 JUnit 기능에 연결). 코드에서이를 활용할 수 있습니다.
자바에서 assert 키워드의 실제 목적은 런타임 패널티없이 끌 수 있도록하는 것입니다. 단위 테스트에는 적용되지 않습니다.
JUnit assertion은 기본 제공 assert문 보다 풍부한 API를 제공하기 때문에 선호 하며, 더 중요한 것은 JVM 인수 assert를 필요로 -ea하는와 달리 명시 적으로 활성화 할 필요가 없다는 것입니다.
테스트가 실패하면 더 많은 정보를 얻을 수 있습니다.
assertEquals(1, 2); 결과 java.lang.AssertionError: expected:<1> but was:<2>
vs
assert(1 == 2); 결과 java.lang.AssertionError
메시지 인수를 추가하면 더 많은 정보를 얻을 수 있습니다. assertEquals
테스트 케이스에서 JUnit을 사용하고 코드에서 Java의 assert를 사용한다고 말하고 싶습니다. 즉, 실제 코드는 명백한 것처럼 JUnit 종속성을 갖지 않아야하며, 테스트 인 경우 어설 션이 아닌 JUnit 변형을 사용해야합니다.
JUnit을 사용하는 경우 JUnit 어설 션을 사용해야합니다. assertTrue()기본적으로와 동일합니다 assert. 그렇지 않으면 왜 JUnit을 사용합니까?
반짝이고 새로운 것을 독점적으로 사용하지만 1.4SE까지 Java에 도입되지 않은 경우에는 적용되지 않을 수 있습니다. 따라서 이전 기술이있는 환경에서 작업해야하는 경우 호환성을 위해 JUnit에 의지 할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/2966347/assert-vs-junit-assertions
'Program Club' 카테고리의 다른 글
| jQuery 및 HTML을 사용하여 CSV로 내보내기 (0) | 2020.10.26 |
|---|---|
| 'init (start : end :)'는 더 이상 사용되지 않습니다. Swift 3에서 제거됩니다. '.. <'연산자를 사용합니다. (0) | 2020.10.26 |
| 두 테이블의 SQL 비교 데이터 (0) | 2020.10.26 |
| JavaScript를 사용하여 문자열에서 쉼표 제거 (0) | 2020.10.26 |
| mySQL 선택 범위 (0) | 2020.10.26 |