我正在为测试创建一个通用框架。我创建了注释,即MyTokenAnnotation使用TokenType枚举值。
@MyTokenAnnotation(tokenType = {TokenType.A, TokenType.B, TokenType.C})
@Test
public void myTestMethod1(TokenType token) {
//Logic Based on Token Type say calling
myAPI1(token);
}
现在,我想运行测试的次数与MyTokenAnnotation中传递的逗号分隔令牌的数量相同。为此,我正在实现IMethodInterceptor的拦截方法。现在,如何将Token参数传递给myTestMethod。 (这与dataProvider有点类似,但是我要创建注释,因为我不想让用户编写各种数据提供者组合,而只是使用注释来运行。)
public List<IMethodInstance> intercept(List<IMethodInstance> methods, ITestContext context) {
List<IMethodInstance> result = new ArrayList<IMethodInstance>();
for (IMethodInstance method : methods) {
TokenType[] tokenTypes = method.getMethod().getConstructorOrMethod().getMethod().getAnnotation(MyTokenAnnotation.class).tokenType();
for (TokenType t : tokenTypes)
result.add(method); // how to attach tokenType param information with method ?
}
return result;
}