Java 放心,模拟Mvc不会选择自定义对象映射器

Java 放心,模拟Mvc不会选择自定义对象映射器,java,spring-mvc,rest-assured,Java,Spring Mvc,Rest Assured,我对这篇文章有一个非常类似的问题: 但是,我使用的配置/型号略有不同,提供的答案并没有解决我的问题 在运行模拟mvc测试时,我的自定义ObjectMapper配置未被拾取。我已经尝试将这个配置类附加到RestAssuredMockMvc,但是当独立安装程序启动时,它似乎仍然没有响应 有什么想法吗 @RunWith(SpringRunner.class) @SpringBootTest(classes = Application.class) public abstract class BaseC

我对这篇文章有一个非常类似的问题:

但是,我使用的配置/型号略有不同,提供的答案并没有解决我的问题

在运行模拟mvc测试时,我的自定义ObjectMapper配置未被拾取。我已经尝试将这个配置类附加到RestAssuredMockMvc,但是当独立安装程序启动时,它似乎仍然没有响应

有什么想法吗

@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public abstract class BaseClassForContractTests {

@Autowired
Controller controller;

@Before
public void setup() {

    RestAssuredMockMvc.config = RestAssuredMockMvcConfig.config().objectMapperConfig(
            ObjectMapperConfig.objectMapperConfig().jackson2ObjectMapperFactory(new Jackson2ObjectMapperFactory() {
                @SuppressWarnings("rawtypes")
                @Override
                public ObjectMapper create(Class cls, String charset) {
                    ObjectMapper objectMapper = new ObjectMapper();
                    objectMapper.registerModule(new JavaTimeModule());
                    objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
                    //objectMapper.setTimeZone(TimeZone.getTimeZone("America/New_York"));
                    //objectMapper.configure(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE, true);
                    return objectMapper;
                }
            })
    );

    RestAssuredMockMvc.standaloneSetup(controller);

}

}是的,这是件愚蠢/简单的事。如果任何人出现此问题,且未获取任何配置,则应使用RestAssuredMockMvc。webAppContextSetup(上下文);而不是孤立无援。你所要做的就是@Autowire一个webAppContext。

我用
重新启动mockmvc.standaloneSetup安装了对象映射器,它对我很有用

MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new
MappingJackson2HttpMessageConverter();
mappingJackson2HttpMessageConverter.setObjectMapper(new ObjectMapper()));
RestAssuredMockMvc.standaloneSetup(
     MockMvcBuilders.standaloneSetup(yourcontroller)
             .setMessageConverters(mappingJackson2HttpMessageConverter)
);

虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-这帮助我解决了我的问题,就像我需要-+1!谢谢@shubham gulati