2017-10-09 50 views
-1

我是jhipster的新手。我想实现一个测试方法来测试从MySQL数据库中检索的值。当我尝试执行“gradlew test”命令时,它将通过说“java.lang.AssertionError:JSON路径" $。[0] .id”没有值而使相关测试用例失败。我已经手动添加了H2 Console数据库表值。我的测试方法如下。如何测试从jigster中的db中检索的值

@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

在你的问题中,你需要比这更多的信息。并且请不要将图像,甚至更糟糕的难以辨认的图像粘贴到您的问题中。使用格式良好,深思熟虑的文字。 –

+0

谢谢。我已编辑@Tim Biegeleisen –

回答

1

据我所知,JHipster中的集成测试在内存中使用H2,所以使用H2控制台所做的更改可能不会被这些测试使用,因此我们的表为空(这是您失败的断言的含义),因为它们存储在H2的磁盘上target/h2db文件夹中(如果您在项目生成时选择了此选项)。

因此,您的测试应该使用PlayerNSRepository创建播放器,或者您应该添加Liquibase migration that loads them from CSV(查看users.csv)并将其限制为H2数据库,并可能使用测试Liquibase上下文。

+0

如何添加从CSV加载它们的Liquibase迁移? –

+0

你能否确定你的问题?这由Liquibase http://www.liquibase.org/documentation/changes/load_data.html记录,JHipster提供了users.csv的示例 –