Jasmineを使用してコードをテストしています。最後のアサートを除いて、すべてが正常に機能します。誰かが私を助けることができますか?
var mongoose = require("mongoose")
, db = mongoose.connect('mongodb://localhost/database')
, Schema = mongoose.Schema;;
describe('Lockmanager', function() {
var status;
var Test = new Schema({
name: String
});
var testModel = mongoose.model('Test', Test);
var LockManager = require('locks').buildLockManager().getManager(testModel, 10000);
var newTestModel = new testModel({
name: "Test"
});
it('should set a lock on an arbitrary mongoose model', function() {
this.after(function() {
testModel.remove({}, function(err, numAffected) {
status = 'collectionRemoved';
});
});
runs(function() {
newTestModel.save(function(err) {
expect(err).toBeNull();
status = 'hasBeenSaved';
});
});
waitsFor(function() {
return status == 'hasBeenSaved';
});
runs(function() {
LockManager.requestLock(newTestModel._id, function(err, response) {
expect(err).toBeNull();
status = 'readyToBeReleased';
});
});
waitsFor(function() {
return status == 'readyToBeReleased';
});
runs(function() {
LockManager.releaseLock(newTestModel._id, function(err) {
expect(err).toBeNull();
status = 'readyToBeDeleted';
});
});
waitsFor(function() {
return status == 'readyToBeDeleted';
})
});
it('should delete all test entries after the test', function() {
waitsFor(function() {
return status == 'collectionRemoved';
});
runs(function() {
testModel.find({}, function(err, res) {
expect(res.length).toEqual(0);
status = 'allDone';
});
});
/*** This waitsFor fixed the problem ***/
waitsFor(function() {
return status == 'allDone';
});
});
});
結果のログは次のとおりです。
jasmine-node spec /lockmanager.spec.js'4fabcae0b563859269000001'のロックを取得しました。。「4fabcae0b563859269000001」のロックを解除しました。。
0.031秒で終了2つのテスト、3つのアサーション、0の失敗
これは実行されました。