我正在使用 Cucumber-JS 编写一些 BDD 功能并使用 Mongoose 为每个场景重置数据库。
我正在设置一个后台任务,为其生成步骤并将 callback.pending() 更改为通过的 callback()。
Feature: x
Background: Clear person collection
Given that I have an empty person collection
...
和我的步骤代码:
...
this.Given(/^that I have an empty person collection$/, function (callback) {
callback();
});
...
我在我的 mongoose 模式中添加了一个 require 语句,然后将回调包装在这个中:
var Product = require("../models/product);
...
this.Given(/^that I have an empty person collection$/, function (callback) {
Product.remove(function(err){
callback();
});
});
...
这是 product.js 文件
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var ProductSchema = new Schema({
name: String,
price: String,
description: String
});
module.exports = mongoose.model('Product', ProductSchema);
当我运行 cucumber-js 时,它就会终止。当我返回并删除删除功能时,它再次运行良好。
我什至试过这样运行它:
...
this.Given(/^that I have an empty person collection$/, function (callback) {
Product.remove().exec(callback);
});
...
任何想法是什么导致了这种行为?