TDD 학습 및 실습 정리1에 이어 정리합니다.
JUnit의 기본적인 기능 3가지
- 테스트 결과가 예상과 강튼지를 판별해주는 단정문(assertions)
- 여러 테스트에서 공용으로 사용 할 수 있는 테스트 픽스처(test fixture)
- 테스트 작업을 수행할 수 있게 해주는 테스트 러너(test runner)
JUnit을 비롯하여 단위 테스트를 잘 작성하려면 테스트 픽스처를 알아야합니다.
테스트 픽스처란
일관 된 테스트 실행 환경
'테스트 컨텍스트'라고 부르기도 합니다.
테스트의 작업이나 결과로 만들어진 대상을 통칭합니다.
대표적으로 setUp() 같은 메소드는 테스트 픽스처를 만들고, 정리하는 수행 메소드이며 테스트 픽스처 메소드라고 합니다.
JUnit의 기원
JUint3의 구성요소 : JUit4를 원하시면 안보셔도 됩니다.
1. 테스트 픽스처 메소드
2. 단정문
3. 테스트 러너
4. 테스트 스위트
JUnit4의 특징
9. @SuiteClasses(Class[])
보통 여러 개의 테스트 클래스를 수행할 때 사용
10. 파라미터를 이용한 테스트
@RunoWith(Parameterized.class)
@Parameters
어노테이션의 가장 큰 장점은 코드가 문서화가 됩니다.
@Test를 보고 테스트인지 바로 알 수 있습니다.
룰
비교 표현의 확장 : Hamcrest
메소드 |
설명 |
클래스명 |
anything |
어떤 오브젝트가 사용되든 일치한다고 판별 |
IsAnything |
describedAs |
테스트 실패 시에 보여줄 추가적인 메세지를 만들어주는 메세지 데코레이터 |
DescribedAs |
equalTo | 두 오브젝트가 동일한지 판별 | IsEqual |
is |
내부적으로 equalTo와 동일하며 가독성 증진용 |
Is |
오브젝트
메소드 |
설명 |
클래스명 |
hasToString |
toString 메소드의 값과 치 여부를 판별 |
HasToString |
instanceOf typeCompatibleWith |
동일 인스턴스인지 타입 비교(instance of), 동일하거나 상위 클래스, 인터페이스인지 판별 |
IsInstanceOf IscompatibleType |
notNullValue nullValue |
Null인지, 아닌지 판별 |
IsNull |
sameInstance |
Object가 완전히 동일한지 비교, equals 비교가 아닌 ==(주소 비교)로 비교하는것과 동일 |
IsSame |
논리
메소드 |
설명 |
클래스명 |
allOf |
비교하는 두 오브젝트가 각각 여러 개의 다른 오브젝트를 포함하고 있을 경우에 동일 여부 판단 |
AllOf |
anyOf |
하나라도 일치하면 true |
AnyOf |
not |
서로 같지 않음 |
IsNot |
빈즈
메소드 |
설명 |
클래스명 |
hasProperty |
Java 빈즈 프로퍼티 테스트 |
HasProperty |
메소드 |
설명 |
클래스명 |
array |
두 배열 내의 요소가 모두 일치하는지 판별 |
IsArray |
hasEntry, hasKey, hasValue |
Map 요소에 대한 포함 여부 판단 |
IsMapContaining |
hasItem, hasItems |
특징 요소들을 포함하고 있는지 여부 판단 |
IsCollectionContaining |
hasItemInArray |
배열 내에 찾는 대상이 들어 있는지 여부를 판별 |
IsArrayContaining |
숫자
메소드 |
설명 |
클래스명 |
closeTo |
부동 소수점 값에 대한 근사값 내 일치 여부 판별, 값과 오차를 인자로 갖음 |
IsCloseTo |
greaterThan greaterThanOrEqualTo |
값 비교, >, >= |
OrderingComparison |
lessThan lessThanEqualTo |
값 비교, <, <= |
OrderingComparison |
텍스트
메소드 |
설명 |
클래스명 |
containsString |
문자열이 포함되어 있는지 여부 |
StringContains |
startsWith |
특정 문자열로 시작 |
StringStartsWith |
endWith |
특정 문자열로 종료 |
StringEndWith |
eqaulToIgnoringCase |
대소문자 구분하지 않고 문자열 비교 |
IsEqualIgnoringCase |
equalToIgnoringWhiteSpace |
문자열 사이의 공백 여부를 구분하지 않고 비교 |
IsEqualIgnoringWhiteSpace |
'개발(합니다) > 방법론' 카테고리의 다른 글
TDD 학습 및 실습 정리4(한계극복하기) (0) | 2018.12.26 |
---|---|
TDD 학습 및 실습 정리3(메소드작성법과한계) (0) | 2018.12.26 |
TDD 학습 및 실습 정리1(TDD의 기본사용법) (1) | 2018.12.22 |
Spring의 TDD 특징 및 사용법 정리 (3) | 2018.12.21 |
Stateless와 Stateful 그리고 JWT 특징 (0) | 2018.12.12 |