请注意,这与test中未使用的定制ObjectMapper中的问题不同,后者是关于导入编程配置的ObjectMapper。
我想要为ObjectMapper的配置提供一个真实的来源,逻辑位置是通过spring.jackson
属性使用springapplication.yml
。但我不知道如何应用这种配置。我在JUnit5测试中使用了一个简单的@extendwith(SpringExtension.class)
注释。
我尝试了@autocigurejsontesters
、@import(jacksonautociguration.class)
和@contextconfiguration(classes=jacksonautociguration.class)
,但没有结果。
您可以在测试类中自动连接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,而我