====== JUnit ======
===== 읽어 볼 글 =====
* [[http://www.javacodegeeks.com/2012/10/enhancing-spring-test-framework-with.html|Enhancing Spring Test Framework with beforeClass and afterClass setup]]
* [[http://www.vogella.com/articles/JUnit/article.html|JUnit tutorial]]
* [[http://www.javacodegeeks.com/2014/11/junit-tutorial-unit-testing.html|JUnit Tutorial Unit Testing]]
===== Parameterized Test =====
* ''@RunWith(Parameterized.class)''로 지정된다.
* ''@Parameters''로 지정된 static 메소드는 배열의 컬렉션을 리턴한다.
* 파라미터 컬렉션의 배열은 테스트 클래스의 생성자의 인자로 들어가게 된다. 따라서 생성자 인자수와 파라미터 배열의 크기가 일치해야 한다.
@RunWith(Parameterized.class)
class MyParameterizedClassTest {
private int multiplier;
public MyParameterizedClassTest(int testParameter) {
this.multiplier = testParameter;
}
// creates the test data
@Parameterized.Parameters
public static java.util.Collection
===== Assume =====
''@Before'' 혹은 ''@Test'' 등에서 [[http://junit.sourceforge.net/javadoc/org/junit/Assume.html|Assume]]을 호출하여 테스트를 계속 실행할지 아니면 중단할지를 결정할 수 있다.
@Before
public void beforeMethod() {
org.junit.Assume.assumeTrue(someCondition());
// rest of setup.
}
// someCondition() == true 일 때만 테스트들이 실행된다.
* [[http://www.codeaffine.com/?p=3487|A JUnit Rule to Conditionally Ignore Tests]] 조건적으로 테스트를 실행하는 ''Rule'' 예제.
===== 테스트 실행 순서 =====
* 테스트 클래스에 ''@FixMethodOrder(MethodSorters.NAME_ASCENDING)'' 형태로 설정하여 테스트 메소드 실행 순서를 보정할 수 있다.
* [[http://examples.javacodegeeks.com/core-java/junit/junit-test-order-example/|JUnit Test Order Example]]
===== IntelliJ Live Template for try/catch JUnit/Hamcrest=====
* abbrevication : ''trytestjunit''
* ''Reformat according to Style'' : check
* ''Use static import if possible'' : check
* ''Shorten FQ names'' : check
* ''Applicable in Java: statement''
* Template text :
try {
org.junit.Assert.fail("Must throw an exception");
} catch ($EXCEPTION$ ex) {
org.junit.Assert.assertThat("Must throw an exception",
ex.getMessage(), org.hamcrest.CoreMatchers.is("$MESSAGE$"));
}
===== Plugins =====
* [[https://github.com/pholser/junit-quickcheck|jUnit QuickCheck]]