小编Sur*_*tra的帖子

尽管创建了 2 个不同的模拟,但 InjectMocks 错误地将相同的模拟注入到 2 个类似类型的不同字段中

我有一个类,它有 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)

java junit inject mockito maven

5
推荐指数
1
解决办法
180
查看次数

标签 统计

inject ×1

java ×1

junit ×1

maven ×1

mockito ×1