TestName(获取当前执行的测试方法的名称)
public class TestNameRuleTest {
@Rule
public TestName name = new TestName();
@Test
public void test() {
System.out.println("method name = " + name.getMethodName());
assertEquals("test", name.getMethodName());
}
}
TemporaryFolder(允许创建在测试方法完成时删除的文件和文件夹(无论它通过还是失败)。默认情况下,如果无法删除资源,则不会引发异常)
public static class HasTempFolder {
@Rule
public final TemporaryFolder folder = new TemporaryFolder();
@Test
public void testUsingTempFolder() throws IOException {
// 创建一个随机名称的文件
File createdFile = folder.newFile("myfile.txt");
// 创建一个随机名称的文件夹
File createdFolder = folder.newFolder("subfolder");
// ...
}
}
ExternalResource 是规则(如 TemporaryFolder)的基类,它在测试之前设置外部资源(文件、套接字、服务器、数据库连接等),并保证之后将其拆除
public class DemoExternalResourceTest {
@Rule
public final ExternalResource externalResource = new ExternalResource() {
@Override
protected void before() {
System.out.println("DemoExternalResourceTest.before");
}
@Override
protected void after() {
System.out.println("DemoExternalResourceTest.after");
}
};
@Test
public void test() {
System.out.println("DemoExternalResourceTest.test");
}
}
}