테스트

Jae-Baek Song·2023년 5월 20일
0

스프링

목록 보기
10/10

단위 테스트

작은 단위의 기능에 대해 독립적으로 유효성을 검증 하는 테스트.

통합 테스트

클래스간 상호작용의 유효성을 검증하는 테스트

E2E 테스트

애플리케이션의 흐름을 처음부터 끝까지 테스트
Controller-Service-Dao 를 모두 검증, 모킹을 사용한다면 E2E 테스트가 아니다.

인수 테스트

인수 테스트는 클라이언트가 기대하는 동작에 대한 테스트

슬라이스 테스트

레이어별로 잘라서, 레이어를 하나의 단위로 보는 단위 테스트를 한다는 것이다.


동등성

동일성의 경우에는 같은 객체인지를 확인 한다.

동일성

동등성의 경우에는 값이 같은지를 확인 한다.

usingRecursiveComparison

실제 객체와 예상 객체 및 그 필드는 동일한 유형이 아니더라도 필드별로 재귀적으로 비교되었으므로, 예를 들어 Person을 PersonDto와 비교할 수 있습니다

@Test
void usingRecursiveComparison() {
    Person person = new Person(1L, "hello");
    PersonDto personDto = new PersonDto(2L, "hello");

    Assertions.assertThat(person)
            .usingRecursiveComparison()
            .ignoringFields("id")
            .isEqualTo(personDto);
}

class Person {
    private final Long id;
    private final String name;

    public Person(final Long id, final String name) {
        this.id = id;
        this.name = name;
    }
}

class PersonDto {
    private final Long id;
    private final String name;

    public PersonDto(final Long id, final String name) {
        this.id = id;
        this.name = name;
    }
}

Void Method Test

verify 메소드를 이용해서 스터빙한 메소드가 실행됐는지, n번 실행됐는지, 실행이 초과되지 않았는지 등 다양하게 검증해볼 수 있다.

verify(T mock, VerificationMode mode)

https://hyeon9mak.github.io/acceptance-test-vs-e2e-test/
https://tecoble.techcourse.co.kr/post/2021-05-18-slice-test/
https://jerry92k.tistory.com/m/77

0개의 댓글