在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