사용자 도구

사이트 도구


java:junit

JUnit

읽어 볼 글

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<Object[]> data() {
        Object[][] data = new Object[][] { {1}, {5}, {121}};
        return Arrays.asList(data);
 
    }
 
    @Test
    public void testMultiplyException() {
        MyClass tester = new MyClass();
        assertEquals("Result", multiplier * multiplier, tester.multiply(multiplier, multiplier));
 
    }
}

Assume

@Before 혹은 @Test 등에서 Assume을 호출하여 테스트를 계속 실행할지 아니면 중단할지를 결정할 수 있다.

 @Before
 public void beforeMethod() {
     org.junit.Assume.assumeTrue(someCondition());
     // rest of setup.
 }
// someCondition() == true 일 때만 테스트들이 실행된다.

테스트 실행 순서

  • 테스트 클래스에 @FixMethodOrder(MethodSorters.NAME_ASCENDING) 형태로 설정하여 테스트 메소드 실행 순서를 보정할 수 있다.

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

java/junit.txt · 마지막으로 수정됨: 2015/11/21 13:26 저자 kwon37xi