我需要使用Java在Mongo數據庫上進行幾次集成測試,並且我正在尋找一種類似DbUnit的解決方案(DbUnit適用於Hibernate),它可以使用自定義數據填充我的數據庫,並在每次運行後重置狀態。與MongoDB集成測試?
任何提示?
感謝
我需要使用Java在Mongo數據庫上進行幾次集成測試,並且我正在尋找一種類似DbUnit的解決方案(DbUnit適用於Hibernate),它可以使用自定義數據填充我的數據庫,並在每次運行後重置狀態。與MongoDB集成測試?
任何提示?
感謝
要開始了,我不知道任何直接等同於DBUnit的爲蒙戈的。 Mongo仍然是一款新產品,所以你可能需要爲這些東西「推出自己的產品」。
不過,也有蒙戈的幾個特點,應該讓這個簡單:
根據您的數據集有很多方法 去做這個。但基本工具在那裏。
所以整個事情應該是非常簡單的。雖然你將不得不寫很多膠水代碼。
不要忘了,你可以使用Java的File.createTempFile(使用file.deleteOnExit)來輕鬆地測試mongo數據庫存儲。 – Steven 2010-10-05 03:32:55
這裏是我做的:連接到已知(通常共享)蒙戈實例,但創建使用UUID每個測試運行新的獨特的數據庫。您不必擔心創建集合,因爲它們是在第一次將文檔存儲在其中時懶惰地創建的。在存儲庫或DAO的構造函數中創建所需的任何索引;如果索引已經存在,mongo索引創建立即成功,不做任何工作。顯然,你不需要擔心模式遷移;-)
這個方案要求你從一個空的數據存儲開始,但它是一個已知的狀態,所以它很容易填充到你的測試的設置階段如果需要的話。
測試完成後,在拆卸階段刪除整個數據庫。
這個問題已經回答了這裏,並允許啓動和停止每次測試之間實例: https://stackoverflow.com/a/9830861/82609
但是啓動/停止之間的每個測試似乎集成測試減慢,這樣的話你最好開始/停止它的整個測試套件: https://stackoverflow.com/a/14171993/82609
我知道這個問題是舊的,但也許我的答案將是有用的人。 下面是一個簡單util的,我最近寫的:https://github.com/kirilldev/mongomery
很簡單填充數據庫從JSON文件中的數據:
//db here is a com.mongodb.DB instance
MongoDBTester mongoDBTester = new MongoDBTester(db);
mongoDBTester.setDBState("predefinedTestData.json");
要檢查DB狀態:
mongoDBTester.assertDBStateEquals("expectedTestData.json");
它支持佔位符對於在某些情況下可能有用的預期文件。
您可以使用nosql-unit具有MongoDB的模塊
回答詳細介紹下這個問題http://stackoverflow.com/questions/6437226/embedded-mongodb-when-running-integration-tests – KPrince36 2015-12-11 15:47:34