我可以像这样注入类字段:
class TestClass{
@Inject
Handler handler;
@Test
public void test1(){....}
@Test
public void test2(){....}
}
但是字段“handler”将在test1()和test2()之间共享,并且给我带来很多问题,所以问题是如何为test1()和test2()注入单独的/不同的处理程序,就像这样:
class TestClass{
@Test@Inject
public void test1(Handler handler){....}
@Test@Inject
public void test2(Handler handler){....}
}
答案 0 :(得分:0)
TestNG正在进行调用,因此您无法添加这样的参数,或者它不知道如何调用您的测试方法。你需要依靠你的注射框架(我假设Guice)。您可以确保您的处理程序不是单例并定义两个不同的字段:
@Inject
private Handler handler1;
@Inject
private Handler handler2;
如果您想要特定的实例,也可以使用带注释的注射:
@Inject
@Handler1
private Handler handler1;
@Inject
@Handler2
private Handler handler2;