天天看點

Junit4小技巧-測試基類

在Junit4使用的時候,直接運作,通過控制台輸出來進行問題判斷,,這比啟用debug模式更加迅速,但有時需要知道哪個方法開始輸出,如果每次都在方法開始時,列印方法名稱,那是較麻煩的事情。

通過測試基類,通過rule,可以帶來一個友善,測試基類代碼如下

package kata.testassist;

import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.rules.TestName;

public abstract class BaseTest {
 protected static final Logger logger =  LogManager.getLogger(LogManager.ROOT_LOGGER_NAME);

    @Rule
    public TestName name = new TestName();

    @Before
    public void init() {
        logger.info("===Start " + name.getMethodName());
    }

    @After
    public void tearDown() throws Exception {
        logger.info("===End " + name.getMethodName());
    }
}
           

實際的測試類繼承自測試基類,樣例如下

package kata.testassist;

import static org.junit.Assert.*;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class BaseTestTest extends BaseTest {
    @Test
    public final void testRun() {
        logger.warn("write test run here");
    }
}
           

運作輸出結果如下:

2017/03/22 00:23:25.943 INFO   17 init - ===Start testRun
// :: WARN    testRun - write test run here
// :: INFO    tearDown - ===End testRun