【发布时间】:2015-06-15 18:47:56
【问题描述】:
所以我正在测试一个调用另一个函数的函数,它返回一个承诺,SUT 看起来像这样:
fn($modal) ->
modalInstance = $modal.open({
controller: 'myCtrl'
size: 'lg'
})
modalInstance.result.then(updateData)
现在如果我需要测试它,我可以从以下内容开始:
it 'when modal called, results get updated with right data', ->
$modal = {
open: sinon.stub().returns({
result: $q.when([1, 2, 3])
})
}
fn($modal)
然后检查updatedData是否等于[1,2,3]
但我还想确保 $modal.open 已被调用并且正确的参数被传递给它。我该怎么做?
我不仅需要存根方法,还需要监视它,我应该模拟整个$modal 吗?你能帮我正确的语法吗?
当我做这样的事情时:
mMk = sinon.mock($modal)
mMk.expects('open')
诗乃对我大喊:
TypeError: Attempted to wrap open which is already stubbed
【问题讨论】:
标签: javascript angularjs unit-testing mocha.js sinon