JUnit中获取测试类及方法的名称实现方法
程序员文章站
2024-03-03 22:18:22
在junit的测试中,有时候需要获得所属的类(class)或者方法(method)的名称,以方便记录日志什么的。
在junit中提供了testname类来做到这一点,在o...
在junit的测试中,有时候需要获得所属的类(class)或者方法(method)的名称,以方便记录日志什么的。
在junit中提供了testname类来做到这一点,在org.junit.rules中:
public class testname extends testwatcher { private string fname; @override protected void starting(description d) { fname = d.getmethodname(); } /** * @return the name of the currently-running test method */ public string getmethodname() { return fname; } }
虽然testname只提供了方法的名称,要加上类的名称很容易,只需对testname稍作修改如下:
protected void starting(description d) { fname = d.getclassname() + "." + d.getmethodname(); }
在测试用例中的用法是:
public class nameruletest { @rule public testname name = new testname(); @test public void testa() { assertequals("testa", name.getmethodname()); } @test public void testb() { assertequals("testb", name.getmethodname()); } }
大功告成!