【问题标题】:Chai-spies: AssertionError: expected { Spy }柴间谍:AssertionError:预期{间谍}
【发布时间】:2015-09-28 16:24:52
【问题描述】:

我正在使用 chai-spies 来确保调用了我的控制器中的函数,这是我的测试:

it('Should show right season and analysts when competition has been selected', function (done) {
    scope.selectedCompetition = scope.competitions[3];
    var spy = chai.spy(scope.selectedCompetitionChanged);
    scope.selectedCompetitionChanged();
    expect(spy).to.have.been.called();
    done();
  });

scope.selectedCompetitionChanged 是一个函数。测试失败并出现以下错误:

 AssertionError: expected { Spy } to have been called
        at Context.<anonymous> (base/tests/client/controllers/prediction.js?02f216981852d0775780926989e7266c6afb0af6:61:30)

如果我显式调用该函数,怎么会发生这种情况? 谢谢

【问题讨论】:

  • 我最终使用了诗乃

标签: angularjs unit-testing chai


【解决方案1】:

为了记录,我认为你理解错了the docs。有了这个:

var spy = chai.spy(scope.selectedCompetitionChanged);

您只是将函数scope.selectedCompetitionChanged 包装在另一个函数spy 中,因此如果您想查看调用次数,您必须使用新的spy() 而不是原来的scope.selectedCompetitionChanged()

另一种跟踪对象方法如下:

var spy = chai.spy.on(scope, 'selectedCompetitionChanged');

现在您可以像往常一样拨打scope.selectedCompetitionChanged(),这将被视为间谍电话。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-18
    • 1970-01-01
    • 1970-01-01
    • 2020-07-17
    • 1970-01-01
    相关资源
    最近更新 更多