2016-05-26 64 views
0

似乎無法找出正確的方式引發和柴斷言keystonejs(V 3.X)模型誤差:困惑於如何正確地斷言keystoneJS模型保存摩卡+柴錯誤

香港專業教育學院有一個簡單的模型帶有一個「unique:true」字符串參數參數: myModel {「uri」:「http://google.com」}。 這個測試的目的,因爲存在具有相同URI參數值的方式現有文檔斷言錯誤 - 和

這裏是我的測試:

it('should throw an error when create with duplicate unique uri param', function(done) { 
    var myList = keystone.list('myModel'); 
    expect(function(){ 

     var newObj = new myList.model({ 
       uri: 'http://google.com' 
     }); 

     newObj.save(function(err,doc){ 
      console.log(err); //properly instantiates MongoError: E11000 duplicate key error index: 
     if (err) throw new Error(err); 
     }); 
    }).to.throw(); 
    done(); 
    }); 

這個測試失敗了:

1) MyModel should throw an error when create with duplicate unique uri param: 
    AssertionError: expected [Function] to throw an error 

關於適當模式的任何想法?

回答

0

以下是此一個體面的模式的工作原理:

... 
newObj.save(function(err,doc){ 
    if (err) { 
    expect(err).to.match(/duplicate key/); 
    done(); 
    } 
    else { 
    throw new Error("doc should not have been created"); 
    } 
});