【发布时间】:2015-10-07 09:28:20
【问题描述】:
我的testService 有一个单元测试。我调用一个函数create,它调用另一个子函数save,它将数据镜像(apiService.send)到国家服务器。在我的单元测试中,我不想测试与服务器的连接等,所以我想模拟函数apiService.send,而是总是返回一个特定的值。但我还是想保留保存功能的其余部分,因为我真的很想检查数据库中的所有内容是否保存完好。
据我所知Jasmine - How to spy on a function call within a function? 这可以通过 and.callThrough 实现
测试
testService.createTest(appUser, testData, (err, test) ->
expect(err).toBe(null)
...
功能
saveTest = (test, method, appUserToken, callback) ->
async.parallel
local: (next)->
test.save((err) ->
return next err if err?
return next null, test._id
)
national: (next)->
apiService.send(environment, method, test, appUserToken, (err, testId) ->
return next err if err?
TestModel.update({_id: test._id}, { $set: { refId: new Object(testId) }}, (err, result) ->
return next err if err?
return next 'Referenz Id wurde nicht gespeichert' if result.nModified==0
return next null, test._id
)
)
(err, results)->
return callback err if err?
return callback null, results.local
exports.createTest = (appUser, testData, callback) ->
...
saveTest(newTest, 'createTest', appUser.token, callback)
【问题讨论】:
-
搜索了错误的术语,我想这看起来像我要找的东西:stackoverflow.com/questions/5747035/… 我会尽快发布解决方案
标签: node.js unit-testing jasmine