【发布时间】:2018-05-25 14:36:17
【问题描述】:
我正在编写一些测试代码。 我使用 spring-boot 1.5.9.RELEASE。
这是我的测试代码
@Test
public void shouldUpdateUserName() throws JsonProcessingException, Exception {
for(UserDto.Request request: userRequests) {
User user = new User();
user.setName(request.getName());
user.setCity(cityRepository.findTopByName(request.getCity()));
userRepository.save(user);
}
UserDto.Request sample = userRequests.get(new Random().nextInt(count));
User sampleUser = userRepository.findTopByName(sample.getName());
String userNameAfterUpdate = sampleUser.getName() + Thread.currentThread().getName();
UserDto.Request request = new UserDto.Request();
request.setCity(sampleUser.getCity().getName());
request.setName(userNameAfterUpdate);
mockMvc.perform(put("/user/" + sampleUser.getId())
.contentType(MediaType.APPLICATION_JSON)
.content(objectMapper.writeValueAsString(request)))
.andDo(print())
.andExpect(status().isOk());
assertNotEquals(sampleUser.getName(), userRepository.findOne(sampleUser.getId()).getName());
assertEquals(userNameAfterUpdate, userRepository.findOne(sampleUser.getId()).getName());
}
在示例用户。我找到并得到一个用户对象。 在 mockMvc.perform()。我通过 id 查找和用户并更新它。
但我得到相同的对象。并且 mockMvc 更新 sampleUser 对象。 所以测试 assertNotEquals 失败。
这怎么可能发生? 请有人帮忙。
【问题讨论】:
-
您能否提供有关您可能在何处使用事务、@Transactional 以及一般数据源的其他信息?
标签: spring spring-boot junit spring-data-jpa mockmvc