如何使用Sinon存根super()调用

时间:2013-05-15 10:01:47

标签: coffeescript sinon

我正在使用Coffeescript,我正在使用Sinon.js进行测试。在测试调用它覆盖的方法的方法时,如何将调用存根到super()

,例如,我想测试的方法(backbone.js模型):

class Whatever extends Model
  validate: (attributes) ->
    validationErrors = super(attributes)
    ...
    validationErrors

在示例中,我想确保使用给定的属性调用super(),并且validate返回验证错误super()返回。

1 个答案:

答案 0 :(得分:0)

像这样:

it 'calls super and returns its result', ->
  whatever = new Whatever()
  attributes = sinon.stub()
  superValidateStub = sinon.mock(Whatever.__super__)
  superValidateStub.expects('validate').withExactArgs(attributes).returns('VALIDATION_RESULT')

  expect(whatever.validate(attributes)).to.eql('VALIDATION_RESULT')

  superValidateStub.verify()

希望这有助于任何人。