JUnit4注解

JUnit4 测试注解详解

本文转自:http://www.cnblogs.com/maxupeng/archive/2010/12/03/1895698.html

JUnit4的测试类不用再继承TestCase类了。使用注解会方便很多。

@Before:初始化方法
@After:释放资源
@Test:测试方法,在这里可以测试期望异常和超时时间
@Ignore:忽略的测试方法
@BeforeClass:针对所有测试,只执行一次,且必须为static void
@AfterClass:针对所有测试,只执行一次,且必须为static void
一个JUnit 4 的单元测试用例执行顺序为:
@BeforeClass –> @Before –> @Test –> @After –> @AfterClass
每一个测试方法的调用顺序为:
@Before –> @Test –> @After

代码:

public class MoneyTest {
 
    @BeforeClass
    public static void setUpBeforeClass() throws Exception {
        System.out.println("setUpBeforeClass");
    }
 
    @AfterClass
    public static void tearDownAfterClass() throws Exception {
        System.out.println("tearDownAfterClass");
    }
 
    @Before
    public void b() {
        System.out.println("b");
    }
    @Before
    public void setUp() throws Exception {
        System.out.println("setUp");
    }
 
    @After
    public void tearDown() throws Exception {
        System.out.println("tearDown");
    }
    
    @Test
    public void testFoo() {
        System.out.println("FOO");
    }
    
    @Test
    public void testEquals() {
        System.out.println("testEquals");
    }
}

输出:

setUpBeforeClass
b
setUp
FOO
tearDown
b
setUp
testEquals
tearDown
tearDownAfterClass

### JUnit4 注解的功能及使用方法 JUnit 是 Java 中广泛使用的单元测试框架之一,其核心功能通过一系列注解来实现。以下是关于 JUnit4 常见注解的详细介绍: #### 1. @Test 用于标记一个方法作为测试用例的方法。默认情况下,被此注解标注的方法会被执行并验证逻辑是否正确[^1]。 ```java @Test public void testAddition() { Calculator calculator = new Calculator(); assertEquals(5, calculator.add(2, 3)); // 验证加法操作的结果 } ``` #### 2. @Before 和 @After - **@Before**: 标记的方法会在每个测试方法执行前运行一次,通常用于初始化资源或对象。 - **@After**: 标记的方法会在每个测试方法执行后运行一次,通常用于清理资源。 ```java @Before public void setUp() { System.out.println("Setting up resources..."); } @After public void tearDown() { System.out.println("Cleaning up resources..."); } ``` 这些注解有助于减少重复代码,并确保每次测试都在干净的状态下运行。 #### 3. @BeforeClass 和 @AfterClass - **@BeforeClass**: 被该注解标记的方法在整个测试类启动时只执行一次,适用于需要一次性完成的操作(如数据库连接建立),需用 `static` 修饰。 - **@AfterClass**: 类似于 `@BeforeClass`,但在整个测试完成后仅执行一次,也需用 `static` 修饰。 ```java @BeforeClass public static void initializeDatabaseConnection() { System.out.println("Initializing database connection..."); } @AfterClass public static void closeDatabaseConnection() { System.out.println("Closing database connection..."); } ``` 此类注解适合处理全局性的设置和销毁工作[^3]。 #### 4. @Ignore 用于忽略某些特定的测试方法,常用于暂时跳过那些尚未完成或者已知会失败的测试案例。 ```java @Ignore("This test is not yet implemented.") @Test public void incompleteTest() { fail("Not yet implemented."); } ``` 这可以帮助开发者专注于其他优先级更高的测试。 #### 5. @RunWith 指定自定义的测试运行器而非默认的 JUnit 运行器。例如可以集成 Spring 测试环境或其他高级特性支持的运行器。 ```java @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest public class MySpringTests { ... } ``` 上述例子展示了如何利用 Spring 提供的专用运行器使测试能够在 Spring 容器上下文中进行。 #### 6. Rules (如 @Rule 或 @ClassRule) Rules 可扩展 JUnit 的能力,允许添加额外的行为到测试中去。比如超时控制、临时文件管理等功能可以通过内置 Rule 实现,甚至还可以自行开发新的 Rule 来满足特殊需求[^2]。 ```java @Rule public Timeout globalTimeout = Timeout.seconds(1); // 设置单个测试的最大持续时间为一秒 ``` 以上介绍了几个主要的 JUnit4 注解以及它们的应用场景,合理运用这些工具能够极大提升软件质量保障水平。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值