私は現在、私が働いているプロジェクトでES 5とJestを使用しています.DBとやり取りするクラスの統合と単体テストに割り当てられました。Java Elasticsearchデータベーステスト
@Override
public Aptitude save(Aptitude aptitude) {
Index index = new Index.Builder(aptitude).index(aptitudeIndexName).type(aptitudeTypeName).refresh(true).build();
try {
client.execute(index);
return aptitude;
} catch (IOException e) {
logger.error("The aptitude couldn't be saved in the data base " + e.getMessage());
throw new RuntimeException(e);
}
}
またはこのような1:
@Override
public List<Aptitude> findAll() {
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.matchAllQuery());
searchSourceBuilder.sort("id", SortOrder.ASC);
Search search = new Search.Builder(searchSourceBuilder.toString()).addIndex(aptitudeIndexName).build();
try {
SearchResult result = client.execute(search);
if (!result.isSucceeded()) {
return null;
}
List<Hit<Aptitude, Void>> aptitudes = result.getHits(Aptitude.class);
return aptitudes.stream().map(this::getAptitude).collect(Collectors.toList());
} catch (IOException e) {
logger.error("The search couldn't be executed" + e.getMessage());
throw new RuntimeException(e);
}
}
、私の仕事は、必ずすべての私の作るためにいくつかのテスト(ユニットおよび統合)を書くことです
はasume私はこのようなメソッドを持っていることができますクラスが正常に動作しているかどうか、より良いテストカバレッジを得るために、私はESテストのために少しオンラインを検索しましたが、どのようにテストを行うべきかをよく理解できます。その後、DBが修復されなければならなかったでしょう
@Test
public void aptitudeSaveDelete() {
Aptitude aptitude = new Aptitude();
aptitude.setId(1993L);
aptitude.setEn("ENaptitudeEN");
aptitude.setEs("ESaptitudeES");
Aptitude aptitudeSaved = elasticsearchAptitudeRepository.save(aptitude);
assertEquals(aptitude.getEs(), aptitudeSaved.getEs());
assertEquals(aptitude.getEn(), aptitudeSaved.getEn());
assertEquals(aptitude.getId(), aptitudeSaved.getId());
Aptitude aptitudeFoundById = elasticsearchAptitudeRepository.findById(String.valueOf(aptitude.getId()));
assertEquals(aptitude.getId(), aptitudeFoundById.getId());
assertEquals(aptitude.getEn(), aptitudeFoundById.getEn());
assertEquals(aptitude.getEs(), aptitudeFoundById.getEs());
boolean wasDeleted;
wasDeleted = elasticsearchAptitudeRepository.deleteAptitudeById(String.valueOf(aptitude.getId()));
assertEquals(true, wasDeleted);
}
を私の同僚は、この種の試験は、DBを妥協することを教えてくれましたし、その場合の何かが彼らと間違っていた:
は、私はこのように見えたいくつかのテストをしました手動でここ損失で、ヘルプのいずれかの種類を使用すると、テストフレームワークいけない