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);
});
...
この動作の原因は何ですか?