春には初めてです。私の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);" と "反復処理可能testDummy2 = goodRepository.findAll();は" nullを返し、テストが終了しさえいけません。
@MockBeanを@Autowireに変更すると、すべて正常に動作します。しかし私のデータベースには不要なデータshmoddaがあります。
したがって、data-shmoddaなしでcorretテストを達成するにはどうすればよいですか?
ありがとう!その "メモリデータベース"問題が問題でした。 @ DataJpaTestではうまく動作します! – Tagamoga