Usm*_*ail 19 java testng unit-testing
我正在使用TestNG并进行一系列测试.我想在每个需要有关方法信息的测试方法之前执行操作.举个简单的例子,假设我想在执行之前打印方法的名称.我可以编写一个带注释的方法@BeforeMethod.如何将参数注入该方法?
tal*_*las 25
请查看文档中的依赖项注入部分.它声明在这种情况下可以使用依赖注入:
任何
@BeforeMethod(和@AfterMethod)都可以声明类型的参数java.lang.reflect.Method.此参数将接收一旦@BeforeMethod完成(或在运行方法之后)将调用的测试方法@AfterMethod.
所以基本上你只需java.lang.reflect.Method在你的声明中声明一个类型的参数,@BeforeMethod你就可以访问以下测试名的名称.就像是:
@BeforeMethod
protected void startTest(Method method) throws Exception {
String testName = method.getName();
System.out.println("Executing test: " + testName);
}
Run Code Online (Sandbox Code Playgroud)
还有一种使用ITestNGMethod界面(文档)的方法,但由于我不确定如何使用它,如果你感兴趣,我会让你看看它.
小智 5
下面的例子展示了如何在使用数据提供者时获取参数,在@BeforeMethod 中使用 Object[] 数组。
public class TestClass {
@BeforeMethod
public void beforemethod(Method method, Object[] params){
String classname = getClass().getSimpleName();
String methodName = method.getName();
String paramsList = Arrays.asList(params).toString();
}
@Test(dataProvider = "name", dataProviderClass = DataProvider.class)
public void exampleTest(){...}
}
public class DataProvider {
@DataProvider(name = "name")
public static Object[][] name() {
return new Object[][]{
{"param1", "param2"},
{"param1", "param2"}
};
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7975 次 |
| 最近记录: |