Ví dụ JUnit Ignoring tests và Timeout với test case

Ví dụ JUnit Ignoring tests và Timeout với test case

Ignoring tests

Vì một lý do nào đó, bạn muốn tạm thời vô hiệu hóa test case (bỏ qua không chạy test case đó).

Thông thường ta sẽ xóa hoặc comment annotation @Test như thế trình test runner sẽ bỏ qua method đó nhưng đồng thời test case đó cũng sẽ không được report (bạn có thể quên mất là có test case đó).

Biện pháp thay thể là sử dụng annotation @Ignore ở trước hoặc sau annotation @Test, sau khi chạy JUnit test, nó vẫn thông báo là có test case đó nhưng đang bị disable.

Ví dụ:

import static org.junit.Assert.*;

import org.junit.Ignore;
import org.junit.Test;

public class DemoIgnoreTest {
  @Ignore("Test is ignored as a demonstration")
  @Test
  public void testEquals() {
    String str = "stackjava.com";
    assertEquals(str, "stackjava.com");
  }

  @Test
  public void testTrue() {
    assertTrue(true);
  }

  @Test
  public void testFalse() {
    assertFalse(false);
  }
}

Ví dụ JUnit Ignoring tests và Timeout với test case

Test case với timeout

Bạn có thể expect thời gian timeout của một test case bằng cách sử dụng tham số timeout trong annoation @Test

Ví dụ:

@Test(timeout = 3000)
public void testTimeout() {
  Demo demo = new Demo();
  demo.process();
}

Ở trên mình expect là thời gian thực hiện test case <= 3 giây (thời gian đó cũng gần tương đương với thời gian thực hiện method process() nên chúng ta cũng có thể dùng để expect thời gian chạy của đơn vị cần test)

Ví dụ JUnit Ignoring tests và Timeout với test case stackjava.com

Okay, Done!

 

References:

https://github.com/junit-team/junit4/wiki/Ignoring-tests

https://github.com/junit-team/junit4/wiki/Timeout-for-tests

stackjava.com