2017-10-09 48 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的示例 –