我正在学习使用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');
});
所以,我知道我的测试格式在我的测试中是错误的,但我不知道它是什么。