2014-02-09 65 views
0

當使用摩卡來測試帆的應用程序的模型,它似乎並沒有回調的內部運行測試:摩卡不上斷言(假)失敗

var assert = require('assert'); 

describe('Dataset', function() { 
    describe('create', function() { 
    it('should create a new dataset', function() { 
     Dataset.create({ 
     'name': 'testDataSet', 
     'description': 'This dataset exists for testing purposes only.', 
     'visibility': 'private', 
     'data': { 
      "foo": { 
      "barn": "door", 
      "color": "green" 
      } 
     } 
     }, function(err, dataset) { 
     assert(false); 
     }); 
    }); 
    }); 
}); 

這個測試是由一種叫做爲其初始化風帆的腳本。 運行此測試時,它會通過,即使它應該失敗。

$: mocha 

1 passing (875ms) 

另外,它似乎永遠不會運行包含assert(false)的回調。放置在任何其他位置斷言產生預期的結果,而且帆似乎正常運行。

任何幫助,非常感謝。

回答

3

你的代碼是異步的,所以你應該在你的測試功能,使用回撥:

var assert = require('assert'); 

describe('Dataset', function() { 
    describe('create', function() { 
    it('should create a new dataset', function(done) { 
     Dataset.create({ 
     'name': 'testDataSet', 
     'description': 'This dataset exists for testing purposes only.', 
     'visibility': 'private', 
     'data': { 
      "foo": { 
      "barn": "door", 
      "color": "green" 
      } 
     } 
     }, function(err, dataset) { 
     if (err) throw err; 
     done(); 
     }); 
    }); 
    }); 
}); 

添加assert調用你需要的地方。

有很多例子here