【问题标题】:How can I automatically restore all sinon.js spies after each test in Jasmine?如何在 Jasmine 中的每次测试后自动恢复所有 sinon.js 间谍?
【发布时间】:2012-04-14 14:08:49
【问题描述】:

有什么方法可以在 sinon.js 中找到所有活跃的间谍吗?我希望能够做这样的事情:

afterEach ->
  sinon.restoreAllSpies()

it "should not create a new MyClass", ->
  spy = sinon.spy(window, 'MyClass')
  expect(spy).not.toHaveBeenCalled()

目前,我需要费力(而且容易出错!)这样做:

it "should not create a new MyClass", ->
  spy = sinon.spy(window, 'MyClass')
  expect(spy).not.toHaveBeenCalled()
  window.MyClass.restore()

有什么想法吗?

【问题讨论】:

    标签: javascript jasmine sinon


    【解决方案1】:

    在这里找到答案:Cleaning up sinon stubs easily

    基本上:

    sandbox = sinon.sandbox.create()
    sandbox.spy(object1, 'methodName')
    sandbox.spy(object2, 'methodName')
    sandbox.restore()
    

    【讨论】:

      【解决方案2】:

      我不这么认为,因为它所做的只是用间谍替换函数,它不会在内部保存所有间谍。因此,您将所有间谍存储在一个数组中并在 afterEach 上重置它们,或者只是在 beforeEach 上创建/覆盖新的间谍。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-04
        • 2020-07-21
        • 2020-05-26
        相关资源
        最近更新 更多