如何为测试方法注入单独/不同的参数?

时间:2013-06-14 01:09:30

标签: dependency-injection testng multiple-instances

我可以像这样注入类字段:

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){....}
 }   

1 个答案:

答案 0 :(得分:0)

TestNG正在进行调用,因此您无法添加这样的参数,或者它不知道如何调用您的测试方法。你需要依靠你的注射框架(我假设Guice)。您可以确保您的处理程序不是单例并定义两个不同的字段:

@Inject
private Handler handler1;

@Inject
private Handler handler2;

如果您想要特定的实例,也可以使用带注释的注射:

@Inject
@Handler1
private Handler handler1;

@Inject
@Handler2
private Handler handler2;