저는 Spring을 처음 사용합니다. 내 GCGood 클래스는 CrudRepository와 함께 MySQL-DB에 저장됩니다. 그리고 그것은 잘 작동합니다.CrudRepository를 올바른 방법으로 조롱하는 방법?
이제 JUnit-Test를 작성하려고합니다. 물론 필자의 데이터베이스에는 테스트 데이터가 필요하지 않습니다. 그래서 난 내 테스트 썼다 :
@RunWith(SpringRunner.class)
@SpringBootTest
public class GCGoodTests {
@MockBean
private GCGoodRepository goodRepository;
@Test
public void getterSetterTest()
{
GCGood testDummy = new GCGod();
testDummy.setAttribute("Muhaha");
testDummy.setColor(Color.BLACK);
testDummy.setName("Maka");
testDummy = goodRepository.save(testDummy);
Iterable<GCGood> testDummy2 = goodRepository.findAll();
assertEquals(testDummy.getAttribute(), "Muhaha");
assertEquals(testDummy.getColor(), Color.BLACK);
assertEquals(testDummy.getName(), "Maka");
assertNotNull(testDummy.getId());
assert(testDummy.getId()>0);
assertNotNull(testDummy2);
}
}
Unfortuantelly "testDummy = goodRepository.save (testDummy)"및 "의 Iterable testDummy2 = goodRepository.findAll();는"null을 반환하고, 테스트가 완료 해달라고.
@MockBean을 @Autowire로 변경하면 모든 것이 정상적으로 작동합니다. 그러나 나는 불필요한 데이터를 가지고있다. 데이터베이스에 shmodda가있다.
그렇다면 데이터 shmodda없이 corret 테스트를 수행하려면 어떻게해야합니까?
감사합니다! "메모리 데이터베이스에서"문제가 문제였습니다. @DataJpaTest로 잘 작동합니다! – Tagamoga