| package org.junit.rules; |
| |
| import org.junit.runner.Description; |
| |
| /** |
| * The TestName Rule makes the current test name available inside test methods: |
| * |
| * <pre> |
| * public class TestNameTest { |
| * @Rule |
| * public TestName name= new TestName(); |
| * |
| * @Test |
| * public void testA() { |
| * assertEquals("testA", name.getMethodName()); |
| * } |
| * |
| * @Test |
| * public void testB() { |
| * assertEquals("testB", name.getMethodName()); |
| * } |
| * } |
| * </pre> |
| * |
| * @since 4.7 |
| */ |
| public class TestName extends TestWatcher { |
| private volatile String name; |
| |
| @Override |
| protected void starting(Description d) { |
| name = d.getMethodName(); |
| } |
| |
| /** |
| * @return the name of the currently-running test method |
| */ |
| public String getMethodName() { |
| return name; |
| } |
| } |