在Junit测试中使用ReflectionTestUtils.setField()来设置对象列表

py49o6xq  于 2023-06-06  发布在  其他
关注(0)|答案(1)|浏览(198)

在我实现中,我
List<recordEntity> entityList = service.mapper(parameter1,parameter2);
我需要为这个entityList设置一个静态值,我的单元测试,我知道使用ReflectionsTestUtils我们可以设置值,即使我已经使用了另一个scenaro,
ReflectionTestUtils.setField(classObject, "implementations", Collections.singletonMap("mapper", new DTOMapper()));
但我不知道如何设置list

dwbf0jvd

dwbf0jvd1#

我只是做了一个小例子。我写了一个带有List的类,并使用reflection设置了一个值:

public class ABC {

    public static List entityList = new ArrayList();

    public void method() {
        System.out.println(entityList);
    }
}

junit测试

@ExtendWith(MockitoExtension.class)
class ABCTest {

    @InjectMocks
    ABC abc;

    @Test
    void myTest() throws NoSuchFieldException, IllegalAccessException {
        List<ABC> staticEntityList = List.of(new ABC(), new ABC());

// Using reflection to set the value of entityList
        Field entityListField = ABC.class.getDeclaredField("entityList");
        entityListField.setAccessible(true);
        entityListField.set(abc, staticEntityList);
        abc.method();

    }
}

所以它的大小变成了

相关问题