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

Dependency injection 如何为测试方法注入单独/不同的参数?,dependency-injection,testng,multiple-instances,Dependency Injection,Testng,Multiple Instances,我可以像这样注入类字段: class TestClass{ @Inject Handler handler; @Test public void test1(){....} @Test public void test2(){....} } class TestClass{ @Test@Inject public void test1(Handler handler){....} @Test@Inject publ

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

class TestClass{
    @Inject
     Handler handler;

    @Test
    public void test1(){....}

    @Test
    public void test2(){....}
}
 class TestClass{

  @Test@Inject
  public void test1(Handler handler){....}

  @Test@Inject
    public void test2(Handler handler){....}
 }   
但是字段“handler”将在test1()和test2()之间共享,这给我带来了很多问题,所以问题是如何为test1()和test2()注入单独/不同的处理程序,如下所示:

class TestClass{
    @Inject
     Handler handler;

    @Test
    public void test1(){....}

    @Test
    public void test2(){....}
}
 class TestClass{

  @Test@Inject
  public void test1(Handler handler){....}

  @Test@Inject
    public void test2(Handler handler){....}
 }   

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

@Inject
private Handler handler1;

@Inject
private Handler handler2;
如果需要特定实例,也可以使用带注释的注入:

@Inject
@Handler1
private Handler handler1;

@Inject
@Handler2
private Handler handler2;

谢谢,您的解决方案不是我想要的。现在,我创建了一个私有方法来重新创建mock,并提前调用每个测试方法。