JUnit Assertion에서 AssertJ로 갈아탈 때 소소한 팁

필자는 현재 참여 중인 프로젝트에서 JUnit으로 테스트 코드를 작성하였다.

그 와중에 JUnit 보다 직관적인 Assert 구문과 풍부한 Assertion[1]을 제공하는 AssertJ를 알게 되었고 AssertJ로 테스트 코드를 리펙토링하고 싶었다.

기존에 작성된 JUnit Assertion 코드를 자동으로 AssertJ 코드로 바꿀 수는 없을까?

AssertJ 마이그레이션Migration 도구

AssertJ 사이트에서는 JUnit Assertion을 AssertJ 코드로 바꿔주는 마이그레이션 도구로 쉘 스크립트를 제공한다.[2]

(참고로 Windows 경우 git bash 같은 bash console 설치 후 실행하면 된다)

출처 : http://joel-costigliola.github.io/assertj/assertj-core-converting-junit-assertions-to-assertj.html

출처 : http://joel-costigliola.github.io/assertj/assertj-core-converting-junit-assertions-to-assertj.html

쉘 스크립트는 sed와 정규식을 기반으로 만들어졌으며 *Test.java 파일을 찾아서 Assertion 구문을 대치한다.

쉘 스크립트 사용해 보기

먼저 변경 전 JUnit Assertions 코드를 보자.

Static Import를 사용하였고, JUnit에서 제공하는 Assertion이 사용되었다.

쉘 스크립트를 실행해 보자.

image2018-2-13_9-18-9

JUnit Assertion 코드가 AssertJ 코드로 변경된 것을 확인할 수 있다.

주석

[1] AssertJ Core features highlight

[2] Converting your JUnit assertions to AssertJ