当前位置: 首页 > 知识库问答 >
问题:

未在测试中使用Application.yml中的ObjectMapper配置

贝凯
2023-03-14

请注意,这与test中未使用的定制ObjectMapper中的问题不同,后者是关于导入编程配置的ObjectMapper。

我想要为ObjectMapper的配置提供一个真实的来源,逻辑位置是通过spring.jackson属性使用springapplication.yml。但我不知道如何应用这种配置。我在JUnit5测试中使用了一个简单的@extendwith(SpringExtension.class)注释。

我尝试了@autocigurejsontesters@import(jacksonautociguration.class)@contextconfiguration(classes=jacksonautociguration.class),但没有结果。

共有1个答案

司空玮
2023-03-14

您可以在测试类中自动连接objectmapper,如下所示

@ExtendWith(SpringExtension.class)
@SpringBootTest
@AutoConfigureMockMvc
class MyIntegrationTest {

  @Autowired
  private MockMvc mockMvc;

  @Autowired
  private ObjectMapper objectMapper;

  @Autowired
  private UserRepository userRepository;

  @Test
  void testCreate() throws Exception {
    User user = new Usere(“ahhi”, “abhi@gmail.com”);

    mockMvc.perform(post("/register/user")
            .contentType("application/json")
            .param("sendWelcomeMail", "true")
            .content(objectMapper.writeValueAsString(user)))
            .andExpect(status().isOk());

    UserEntity userEntity = userRepository.findByName("ahhi");
    assertThat(userEntity.getEmail()).isEqualTo("abhi@gmail.com");
  }
}
 类似资料:
  • 问题内容: 我正在使用带有Spring Web服务且没有Spring Boot的Spring Framework版本4.1.6。要学习该框架,我正在编写REST API并进行测试以确保从命中端点收到的JSON响应正确。具体来说,我想调整的‘用下划线小写’命名策略使用。 我正在使用Spring博客上详细介绍的方法创建一个新方法,并将其添加到转换器列表中。如下所示: 然后,运行以下测试(使用JUnit

  • 我使用的是Spring Framework4.1.6版本,带有Spring web services,不带Spring Boot。为了学习这个框架,我正在编写一个REST API,并进行测试,以确保从命中一个endpoint收到的JSON响应是正确的。具体地说,我正在尝试调整的以使用“带下划线的小写”命名策略。 我正在使用Spring的博客中详细介绍的方法创建一个新的并将其添加到转换器列表中。具体

  • 问题内容: 我的目标是配置,使其仅序列化带有注释的元素。 为了做到这一点,我按照下面的说明进行了说明,该说明说明了如何配置对象映射器。 我包括自定义描述objectmapper 这里。 但是,当类被序列化时,它仍包含json中的所有属性。 有人暗示吗?提前致谢 Jackson 1.8.0 spring 3.0.5 CustomObjectMapper servlet.xml NumbersOfNe

  • 使用我在application.yml中的配置,@circuitbreaker可以很好地工作。重试也有效,但确实只使用默认配置值,并且不反映application.yml中的值(例如:MaxAttemptions是3而不是5)。 你知道我在这里做错了什么吗? 在代码中:

  • 问题内容: 我的目标是配置,使其仅序列化带有注释的元素。 为了做到这一点,我按照下面的说明进行了说明,该说明说明了如何配置对象映射器。 我包括自定义描述这里。 但是,当类被序列化时,它仍包含中的所有属性。 有人暗示吗?提前致谢 杰克逊1.8.0Spring3.0.5 CustomObjectMapper servlet.xml 问题答案: 使用Spring Boot(1.2.4)和Jackson(

  • 现在,我在src/test/resources/application.yml中也有source.storage属性,该属性指向src/test中的另一个目录,在该目录中存储测试XML文件,并再次使用@value注释将它们导入到测试类中。我的测试使用HTTP GET调用RESTendpoint。但是,服务似乎仍然将source.storage属性绘制为main application.yml,而我