私はいくつかのテストコードを書いています。 私はspring-boot 1.5.9.RELEASEを使用します。spring-data-jpaとMockMvcを使ったスプリングブートjunitテスト
これは私のテストコードsampleUserで
@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オブジェクトを更新します。 test assertNotEqualsは失敗します。
どのように起こったのですか? 助けてください。
あなたは、トランザクション、@トランザクション、一般的にあなたのデータソースを使用している可能性のある場所についての追加情報を提供できますか? –