使用.validate()的Mocha测试模式不会返回

时间:2018-06-10 16:47:34

标签: node.js typescript mongoose mocha

目前我正在尝试编写一些模式测试,我有以下模式:

strcut complex{
  double re, im;
}

complex *data = new complex[length];

delete[] data;

属性docs <- Corpus(VectorSource(docs)) # Convert the text to lower case docs <- tm_map(docs, content_transformer(tolower)) # Remove numbers docs <- tm_map(docs, removeNumbers) # Remove english common stopwords docs <- tm_map(docs, removeWords, stopwords("english")) # Text stemming docs <- tm_map(docs, PlainTextDocument) # not necessary docs <- tm_map(docs, stemDocument) const ItemSchema = mongoose.Schema({ _id : mongoose.Schema.Types.ObjectId, price : {type : Number}, name : {type : String, required : true, trim : true}, urlPath : {type : String, required : true, unique : true, trim : true}, creationDate : {type : Date, default : Date.now}, lastModDate : {type : Date, default : Date.now}, }, { toJSON: { virtuals: true } }); 是必需的。

我的测试文件如下所示:

urlPath

我总是收到这个错误:

  

超过2000毫秒的超时。对于异步测试和挂钩,确保调用“done()”;如果返回Promise,请确保它已解决。

但是当我像这样验证丢失的name时:

 describe('validation', () => {
    it('should be invalid if name is missing', function(done){
      let item = new Item({urlPath : "item-1-urlPath"});
      item.validate(function(err){
        if(!err) done('should not be here');
        expect(err.name).to.eql('ValidationError');
        expect(err.errors).to.have.property('name');
        done();
      });
    })
  })
一切似乎都很好

更新

我正在使用的中间件(答案中的描述)

urlPath
  • nodejs:8.1.1
  • mongoose:5.1.3
  • 打字稿:2.9.1
  • system:ubuntu 16.04

1 个答案:

答案 0 :(得分:0)

问题来自我在描述中更新的中间件,这个中间件异步调用数据库,我只是测试架构而无法连接查询数据库。

我认为这是由于连接错误造成的,需要花费2秒多的时间才能抛出。