java - 在 Java 11 中使用 mockito 时未找到序列化程序

标签 java mockito java-11

我使用 mockito 为我的 Controller 和服务创建了一个测试。虽然我使用 Java 8 一切正常,但是在迁移到 Java 11 之后,我遇到了这个错误。也许有人可以帮我解决这个测试?

public class ConfigurationControllerTest {

    @Mock
    private ConfigurationService configurationService;

    @InjectMocks
    private ConfigurationController controller;

    private MockMvc mockMvc;

    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        mockMvc = MockMvcBuilders
                .standaloneSetup(controller)
                .build();
    }

    @Test
    public void find() throws Exception {
        //given
        final ConfigurationsDto configDto = mock(ConfigurationsDto.class);
        given(configurationService.find(any())).willReturn(Arrays.asList(configDto));


        //when and then
        mockMvc
                .perform(get("/config/1.0.0/")
                        .accept(MediaType.APPLICATION_JSON))
                .andExpect(status().isOk());
    }
}

运行后,我收到 https 状态 500 和错误:

[main] ERROR app.controllers.global.AdviceController - No serializer found for class org.mockito.internal.debugging.LocationImpl and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: java.util.Collections$SingletonList[0]->app.dtos.ConfigurationsDto$MockitoMock$534475338["mockitoInterceptor"]->org.mockito.internal.creation.bytebuddy.MockMethodInterceptor["mockHandler"]->org.mockito.internal.handler.InvocationNotifierHandler["invocationContainer"]->org.mockito.internal.stubbing.InvocationContainerImpl["invocationForStubbing"]->org.mockito.internal.invocation.InvocationMatcher["invocation"]->org.mockito.internal.invocation.InterceptedInvocation["location"])

当然,我在pom中添加了需要的依赖:

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>2.23.4</version>
</dependency>

最佳答案

我使用真实对象而不是模拟 dto 来修复这个测试

关于java - 在 Java 11 中使用 mockito 时未找到序列化程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53519442/

相关文章:

java - Android Studio 中的 ScrollView,同时使用上拉刷新

java - 如何在终端中使用 .jar 文件?

java - 测试使用私有(private)静态类的对象列表的方法

Java 11 SSL 异常 : unable to find valid certification path to requested target

java - 这两种 Java 插入排序算法哪个更好?

java - 通过 Ajax 请求的 Servlet 流

java - 如何使用 mockito 测试 ehcache?

java - 如何使用 JUnit 和 Mockito 来模拟内部逻辑

Java 11 局部变量类型推断改进用法

java - 为什么 Netty HTTP 处理程序不可共享?