Junit4 常见注解

1 概述

在本文中,我们将讨论常用的注释,当您在类路径中包含junit4.jar时可用。
常用的注解是:
 
让我们用示例讨论每个注解。

2 JUnit 4常用的注解

2.1 @Before和@After

在Junit4中,没有setup() 或tearDown() 方法,相反,我们具有@Before和@After批注。通过使用@Before,可以将任何方法设置为setup(),通过使用@After,可以将任何方法设置为teardown() 。要记住的最重要一点是在每个测试用例之前和之后都将调用@Before和@After注解方法。因此,如果您的JUnit测试文件中有五个测试用例,则与被@Before和@After注解的setup() 和tearDown() 方法一样,它将被调用五次。这是使用@Before和@After注解的示例:
/**
 * 一点教程网: http://www.yiidian.com
 */
@Before
public void setUp() {
    System.out.println("@Before method will execute before every JUnit4 test");
}

@After
public void tearDown() {
    System.out.println("@After method will execute after every JUnit4 test");
}

2.2 @BeforeClass和@AfterClass

@BeforeClass和@AfterClass JUnit4注解与@After和@Before相似,唯一的区别是它们是按TestClass而不是按测试调用的。它们可以用作一次性设置和tearDown方法,并且可以用于初始化类级别的资源。这是在JUnit4中使用@BeforeClass和@AfterClass注解的示例,这是@BeforeClass和@AfterClass Junit 4注解的示例
/**
 * 一点教程网: http://www.yiidian.com
 */
@BeforeClass
public static void setUpClass() throws Exception {
    System.out.println("@BeforeClass method will be executed before JUnit test for"
            + "a Class starts");
}

@AfterClass
public static void tearDownClass() throws Exception {
     System.out.println("@AfterClass method will be executed after JUnit test for"
            + "a Class Completed");
}

2.3 @Test

@Test替代了TestCase类和约定“ test”,我们将其前缀为每个测试方法。例如,要测试用于创建方法testCalcuatedInterest() 的方法calculateInterest() ,我们的类需要从org.junit.TestCase类扩展。现在有了@Test注解,不再需要。您只需要使用@Test Junit4注解测试方法并完成即可。无需从TestCase类扩展,也无需在您的方法前添加“ test”前缀,这是JUnit 4 @Test注解的示例
 @Test
    public void testCalculateInterest() {
        System.out.println("calculateInterest");
        fail("An Example of @Test JUnit4 annotation");
    }

2.4 @Ignore

有时,我们在JUnit测试类中添加了测试方法,但尚未实现,如果JUnit测试用例已集成或嵌入到构建过程中,则会导致构建失败。您可以通过在Junit4中将测试方法标记为@Ignore来避免该问题。JUnit4忽略使用@Ignore注解的方法,并且不会在测试期间运行。这是在JUnit4中使用@Ignore注解以排除特定Test不能运行的示例:
 @Ignore("Not yet implemented")
    @Test
    public void testGetAmount() {
        System.out.println("getAmount");
        fail("@Ignore method will not run by JUnit4");
    }

2.5 @Test(timeout=500)

现在,使用JUnit4编写基于超时的测试用例非常容易。您只需要将值以毫秒为单位的参数超时传递给@Test注解。记住超时值是以毫秒为单位指定的,如果JUnit4超时测试用例在超时期限之前还没有完成,它将很有帮助。如果您具有SLA(服务水平协议)并且需要在预定义的超时之前完成操作,则此方法非常有用。
  @Test(timeout = 500)
    public void testTimeout() {
        System.out.println("@Test(timeout) can be used to enforce timeout in JUnit4 test case");
        while (1 == 1) {
          
        }
    }

此JUnit4测试将在500毫秒后失败。

2.6 @Test(expected=IllegalArgumentException.class)

另一个有用的增强功能是JUnit4的异常处理测试用例。现在,测试异常变得非常容易,您只需要在@Test注解内指定Exception类,即可检查方法是否抛出特定的异常。这是一个示例,该示例测试使用无效输入运行时方法的行为,以验证该方法是否抛出Exception:
    @Test(expected=IllegalArgumentException.class)
    public void testException(int input) {
        System.out.println("@Test(expected) will check for specified exception during its run");
      
    }

3 结论

在这篇文章中,我们看到了常用的JUnit 4注解及其含义的列表。此外,我们还看到了常用的注解,例如
@Before
@BeforeClass
@After
@AfterClass
@Test
@Ignore
@Test(timeout=500)
@Test(expected=IllegalArgumentException.class)

 

一点教程,一个分享编程知识的公众号。跟着站长一起学习和进步。

通俗易懂,深入浅出,一篇文章只讲一个知识点。

在公交、在地铁、在厕所都可以阅读,随时随地涨姿势。

文章不涉及代码,不烧脑细胞,人人都可以学习。

当你决定关注「一点教程」,你已然超越了90%的程序员!

一点教程二维码