首页 > 解决方案 > 在测试期间将特定值插入到类构造函数中

问题描述

Google Guice用作 DI 框架, Junit 4用于Mockito 2.x测试。我有一个类,我在其中使用@Inject注释来连接依赖项。现在作为测试的一部分,我正在使用@Mock@InjectMocks注入所有依赖项。下面是代码:

public class SampleClass {

    @Inject
    private ClassA classA;

    @Inject
    private ClassB classB;

    @Inject
    private Executor javaThreadExecutor;

    public void doSomething() {
        // some logic

        javaThreadExecutor.execute(()-> {

            // some logic

        })
    }
}

以下是我用于测试的代码:

public class SampleClassTest {

    @Mock
    private ClassA classA;

    @Mock
    private ClassB classB;

    private Executor javaThreadExecutor = new Executor(10);

    @InjectMocks
    private SampleClass toTestInstance;

}

现在的问题是,我想将执行程序作为new Executor(10)而不是模拟实例传递。但我似乎无法找到一种方法让 mockito 使用 Executor 的实例。

我知道两种解决方案

问题是,有没有一种方法可以通过注释或通过init我可以注入特定的 Executor 实例?

标签: javajunitmockito

解决方案


推荐阅读