我是摩卡测试的新手,但是当我这样编写代码时
var assert=require('assert');
// ../ --->go up a directory
var MarioChar=require('../models/marioCharacter');
//Describe tests
//describe("description",function that executes tests)
describe('Saving Records',function(done){
//create tests
//it blocks -describes a single tests
//it("description",function that executes a test)
it('Saves a record to the database',function(){
//if assert evaluates to true, the test passes
//otherwise the test fails
//marioCharacter model is expecting the properties of the object
// that adhere to its set Schema
var mario=new MarioChar({
name:"mario"
});
mario.save().then(function(){
console.log("saved");
done();
});
//then need to save this character to the database
//saves the character to the set database
//save() is an async request so cannot assert save() directly
//save implements the promise interface
});
//next test
});
但是,它起作用了,当我通过it块而不是describe块来完成操作时,它会读取错误“错误:超过2000毫秒的超时。对于异步测试和挂钩,请确保调用了“ done()”;如果返回承诺,确保其解决。”这里发生了什么?
答案 0 :(得分:0)
测试承诺的更简单方法可能是使用async/await。您的测试看起来像
it('Saves a record to the database', async function(){
var mario=new MarioChar({
name:"mario"
});
await mario.save();
console.log('saved');
// Any assertions can go here after mario has been saved
});