我有一个类,它有 2 个类似类型的字段。我嘲笑过他们两个。但是当我使用 InjectMocks 时,inject mocks 错误地将单个模拟注入到这两个字段中。
这是示例代码类:
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import java.util.Set;
import java.util.function.Consumer;
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
public class TestClass {
private final Consumer<Set<Integer>> intConsumer;
private final Consumer<Set<String>> stringConsumer;
void PrintClass(){
System.out.println("intConsumers: " + intConsumer);
System.out.println("stringConsumers: " + stringConsumer);
}
}
Run Code Online (Sandbox Code Playgroud)
这是测试类:
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import java.util.Set;
import java.util.function.Consumer;
@RunWith(MockitoJUnitRunner.class)
public class TestClassTest {
@Mock private Consumer<Set<Integer>> intConsumer;
@Mock private Consumer<Set<String>> stringConsumer;
@InjectMocks private TestClass testClass;
@Test
public void testPrint(){
testClass.PrintClass(); …Run Code Online (Sandbox Code Playgroud)