簡體   English   中英

使用Vows和Mongoose進行異步測試

[英]Async Testing with Vows and Mongoose

使用Vows / Coffeescript / Mongoose並遇到與DB的異步問題。

在我的測試運行之前,我做了一堆設置,包括清除測試數據庫。 一旦我在最后一個doc上調用了remove,我就會關閉回調,以便Vows可以繼續進行測試的下一步。 麻煩的是,由於事情發生異步,無法保證數據庫實際上已被清除。 在這種情況下,我實際上想要同步,但我不知道如何實現這一點。

這是代碼(Vows片段,然后是清除函數def):

'AND the test database is empty': 
  topic: ->
    testDB.purge "widgets_test", @callback

purge = (database, callback) ->
db = mongoose.connect "mongodb://localhost/#{database}"
modelCount = Models.length
for model in Models
    modelCount--
    model.find {}, (err, docs) ->
        docCount = docs.length
        for doc in docs
            doc.remove (err) ->
            docCount--
    # do callback after all data has been purged - setTimeout HACKHACKHACK
        if modelCount is 0 and docCount is 0
            setTimeout -> 
                callback()
            , 100

這樣做的正確方法是什么?

我使用的技巧是在后續批處理中運行測試之前,在單獨的批處理中執行此設置/拆卸。

它似乎對我有用(我也使用誓言和Mongo)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM