4

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

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

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

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

4

1 回答 1

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()

希望这对任何人都有帮助。

于 2013-05-15T10:01:47.413 回答