아래 싸이트의예제를 바탕으로 assertj 예제를 사용한다.
<pom.xml>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.1.0</version>
<scope>test</scope>
</dependency>
소스는 다음과 같다. 보라색으로 칠한 것을 주의깊게 본다.
import static org.assertj.core.api.Assertions.assertThat;import java.util.stream.Stream;import java.util.Arrays;
import java.util.List;public class ConvertObjectTest { @Test
public void convertObjectListWithFunctionTest() {
// given
OneMember samuel = new OneMember(1, "Samuel");
OneMember daisy = new OneMember(2, "Daisy");
OneMember matt = new OneMember(3, "Matt");
// when
List<OnePerson> persons = Stream.of(samuel, daisy, matt)
.map(OnePerson::new)
.sorted(comparing(OnePerson::getId))
.collect(toList());
List<OnePerson> list = Arrays.asList(new OnePerson(1, "Samuel"), new OnePerson(2, "Daisy"), new OnePerson(3, "Matt"));
assertThat(persons).hasSameElementsAs(list);
}
일반적으로 List와 같은 Collection 에 대한 테스트 코드가 상당히 verbose 하다. 첫 번째는 x, 두 번째는 y 이렇게 assert equal로 테스트를 해야 하는데, assertJ의 가장 특징은 이런 verbose한 코드를 줄일 수 있다는 점에서 참 좋았다.
예제와 같이 List<OnePerson> 객체 두개를 한 줄에서 assert로 체크해 볼 수 있어서 좋다.
관련 URL
'general java' 카테고리의 다른 글
java.lang.NoClassDefFoundError: org/apache/http/impl/conn/PoolingClientConnectionManager 해결 (0) | 2015.08.13 |
---|---|
[Jackson] JSON de/serialization 시 Getter/Setter 없이 POJO 사용 (0) | 2015.08.12 |
[AssertJ] Array, List, Map을 쉽게 테스트할 수 있는 예제 (0) | 2015.07.11 |
[Spring Boot] Application.java 위치 (0) | 2015.07.03 |
[Spring Boot] NoSuchBeanDefinitionException 주의사항 (0) | 2015.07.03 |