使用Mocha,Chai,Node.JS和MongoSB测试创建时出错

时间:2017-10-01 19:30:52

标签: node.js mongodb mocha chai

我正在学习使用Mocha进行测试并为应用程序设置一些简单的测试。我的前两个测试工作,但我在最后一次测试时遇到错误。

错误信息是:2传递(87ms)

  

1失败

     

1)路由测试##创建文章应该创建一个任务:        未捕获的AssertionError:预期未定义为等于'测试标题'         在测试。 (试验/ todos.test.js:33:39)         在Test.assert(node_modules / supertest / lib / test.js:179:6)         在Server.assert(node_modules / supertest / lib / test.js:131:12)         在emitCloseNT(net.js:1646:8)         at _combinedTickCallback(internal / process / next_tick.js:135:11)         at process._tickCallback(internal / process / next_tick.js:180:9)

这是我从数据库获得的错误。

  

验证失败:{ValidationError:文章验证失败:   title:路径title是必需的。       在ValidationError.inspect(/Users/patrickbentley/Desktop/Article-Scraper/node_modules/mongoose/lib/error/validation.js:57:23)

这是我的测试:

describe('## Create article ', function() { 
 it('should create a task', function(done) { 
  request(app) .post('/saved') .send({"title":'Test Title'}) 
 .end(function(err, res) { 
    expect(res.statusCode).to.equal(200); 
    expect(res.body.title).to.equal('Test Title'); 
    task = res.body; 
    done(); 
  }); 
 }); 
}); 

这是我的模特:

// Require mongoose
var mongoose = require("mongoose");
// Create Schema class
var Schema = mongoose.Schema;

// Create article schema
var ArticleSchema = new Schema({
// title is a required string
title: {
 type: String,
 required: true
},
// link is a required string
link: {
type: String
},
// This only saves one note's ObjectId, ref refers to the Note model
note: {
 type: Schema.Types.ObjectId,
 ref: "Note"
}
});

// Create the Article model with the ArticleSchema
var Article = mongoose.model("Article", ArticleSchema);

// Export the model
module.exports = Article;

以下是我的代码' /已保存'路线:

router.post("/saved", function(req,res){
var entry = new Article(
    {
        title:req.body.title
    });
entry.save(function(err, doc) {
    // Log any errors
    if (err) {
      console.log(err);
    }
    // Or log the doc
    else {
      console.log(doc);
    }
  });
  res.render('index');
});

所以,我知道我的测试格式在我的测试中是错误的,但我不知道它是什么。

0 个答案:

没有答案