對圖資料庫(Nebula)進行單元測試時的坑

靜若清池發表於2021-07-02

通過Nebula提供的Java Client完成程式碼開發後,使用JUnit對其進行單元測試,需要注意幾點:

一、不確定性

1.Nebula建立圖空間是非同步實現的,Nebula將在下一個心跳週期內(預設是10s)完成圖空間的建立

  如果單元測試程式碼中有動態建立、刪除圖空間的語句,單元測試結果可能是不確定的,時好時壞

2.如果單元測試中有動態建立Tag、EdgeType,單元測試結果可能是不確定的,時好時壞

二、解決方案

1.基於前面的兩種不確定性,建議提前手動建立好圖空間(相當於關聯式資料庫)、Tag(相當於關聯式資料庫中的表)、EdgeType(相當於關聯式資料庫中的表)

  只對Vertex以及Edge進行動態插入刪除操作,這樣單元測試的結果是穩定的,不會出現時好時壞的現象

2.如果使用JUnit5進行單元測試,建議:

 在@BeforeAll註解的方法裡進行Vertex及Edge的初始化

 在@AfterAll主機的方法裡進行Vertex及Edge的清除、Nebula會話的釋放、連線池的關閉等操作

相關文章