Suc*_*ipi 6 javascript jasmine
我正在测试 Jasmine 中 NoSQL 文档的表示。每个文档都有一个save
方法,将对象的更改保存到数据库,以及一个reload
方法,将文档从数据库加载到对象中。我想定义一个sync
方法,它只是调用save
然后调用reload
.
我对此方法的测试如下所示(subject
是文档实例):
describe 'sync', ->
it 'saves and then reloads', ->
spyOn(subject, 'save')
spyOn(subject, 'reload')
subject.sync()
expect(subject.save).toHaveBeenCalled()
expect(subject.reload).toHaveBeenCalled()
Run Code Online (Sandbox Code Playgroud)
然而,这个测试是不完整的;它传递了一个sync
在保存之前重新加载的方法,这将丢弃对文档所做的更改。
如何断言在 reload 方法之前调用了 save 方法?
我发现的一个解决方案是推送到数组而不是使用 Jasmine 间谍:
describe 'sync', ->
it 'saves and then reloads', ->
callOrder = []
subject.save = -> callOrder.push 'save'
subject.reload = -> callOrder.push 'reload'
subject.sync()
expect(callOrder).toEqual(['save', 'reload'])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1562 次 |
最近记录: |