亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何有效地填充 MongoDB 數據庫以進行 e2e 測試

如何有效地填充 MongoDB 數據庫以進行 e2e 測試

素胚勾勒不出你 2021-12-23 15:45:52
我已經按照此處的描述設置了我的環境:https : //medium.com/developer-circles-lusaka/how-to-write-an-express-js-server-using-test-driven-development-921dc55aec07這意味著我正在使用配置包來選擇環境。我想做的是在執行每個測試之前(重新)填充數據庫。我希望這可以使用 Mocha 提供的 beforeEach() 鉤子來完成(我使用 Mocha 作為測試運行程序)。我的問題是什么是一次性將一堆數據加載到數據庫中的有效方法(我正在使用 Mongoose 以防萬一。我不知道插入時是否可以省略)?這最好在與測試分開的文件中完成。
查看完整描述

1 回答

?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

這是我所做的:


在 beforeEach 中完全刪除數據庫。您可以通過 mongoose 連接訪問 mongodb 實例,例如:db.db.dropDatabase()


為我的域創建預配置的數據對象并將它們保存在我導入的模塊中 - 簡單的 JavaScript 對象。所以我有像 data.users.vader 和 data.users.luke、data.products.deathStar 等數據


在我的測試中,我使用chaihttp來訪問包含以下數據的路由:


let user = data.users.vader;

chai.request(server)

                    .post('/users')

                    .send(user)

                    .end((err, result) => {

                        if (err) {

                            return callback(err);

                        }


result.should.have.status(200);

                        result.body.status.should.eq(enums.status.success);

                        result.body.data._id.should.be.a('string');

                        result.body.data.name.should.eq(user.name);

                        result.body.data.email.should.eq(user.email);

每個單元測試都會刪除數據庫并創建所需的數據。我是這樣開始的,這樣每個測試都是獨立的。


您也可以batchWriteItem稍后使用 mongodb 批量加載數據。


我還創建了可以在單元測試中調用的函數,這些函數將使用批量加載數據batchWriteItem- 這主要用于性能測試查詢等


查看完整回答
反對 回復 2021-12-23
  • 1 回答
  • 0 關注
  • 168 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號