0
這是我認爲應該工作的測試。摩卡和柴承諾超時
var chai = require('chai'),
chaiAsPromised = require('chai-as-promised'),
assert = require('chai').assert,
should = require('chai').should(),
saveImage = require('helpers/save-image'),
Mocha = require('mocha'),
path = require('path'),
getUser = require('helpers/get-user')
describe('GetUser', function() {
describe("getUser(token)", function() {
it("should return a user's ID when given token", function() {
this.timeout(4000)
var token = "LONG-STRING"
return getUser(token).should.eventually.include('ANOTHER-STRING')
})
})
})
下面是函數
var User = require('../models/userModel'),
Q = require('q')
module.exports = function getUser (token) {
return Q.Promise(function (resolve, reject, notify) {
User.findOne({ token: token }).exec()
.then(function (data) {
if (!data)
reject(new Error("There was a problem getting the user. No user with that token."))
resolve(data.id)
}, function (error) {
reject(new Error(error))
})
})
}
當我叫我的應用程序這個功能,並使用節點忒修斯調試器,我看到上線功能8起火災(.then(function (data) { ...
)。
但是當我用調試器運行Mocha時,我發現該函數或其他任何函數都不會觸發。我只在第4行和第5行看到一個電話被觸發。測試正在使用我在我的應用前端使用的完全相同的LONG-STRING
作爲token
參數。
爲什麼Mocha和節點如何看待我的應用程序有什麼不同,以及如何使此測試工作?
將超時設置爲'this.timeout(999999);' – harshes53 2015-02-24 23:03:34
@ hbk35問題是應用程序未運行,因此無法執行任何Mongoose命令。見下面的答案。 – Noah 2015-02-25 02:28:56