我是jhipster的新手。我正在尝试实现一个测试方法来测试从mysql db中检索的值。当我试图执行" gradlew test"通过说" java.lang.AssertionError:在JSON路径上没有值" $。[0] .id"来命令它将失败相关的测试用例。我手动添加了H2 Console数据库表值。我的测试方法如下。
@Test
@Transactional
public void getAllPlayersNS() throws Exception {
// Get all the playersNList
restPlayersNMockMvc.perform(get("/api/players-ns?sort=id,asce"))
.andExpect(status().isOk())
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8_VALUE))
.andExpect(jsonPath("$.[0].id").value(1));
}
我哪里出错?
答案 0 :(得分:1)
据我所知,JHipster中的集成测试在内存中使用H2,因此使用H2控制台所做的更改可能不会被这些测试使用,所以我们的表是空的(这是你失败的断言的意思)因为它们是存储在target/h2db
文件夹中的磁盘上的H2中(如果您在项目生成时选择了此选项)。
所以要么,你的测试应该使用PlayerNSRepository来创建玩家,或者你应该添加Liquibase migration that loads them from CSV(查看users.csv)并将其限制为H2 db并且可能使用测试Liquibase上下文。