Dar*_*rio 5 unit-testing angularjs chai
我正在使用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();
});
Run Code Online (Sandbox Code Playgroud)
scope.selectedCompetitionChanged
函数在哪里。测试失败,并出现以下错误:
AssertionError: expected { Spy } to have been called
at Context.<anonymous> (base/tests/client/controllers/prediction.js?02f216981852d0775780926989e7266c6afb0af6:61:30)
Run Code Online (Sandbox Code Playgroud)
如果我显式调用该函数,怎么办?谢谢
仅供记录,我认为您对文档的理解错误。有了这个:
var spy = chai.spy(scope.selectedCompetitionChanged);
Run Code Online (Sandbox Code Playgroud)
您只是将该函数包装scope.selectedCompetitionChanged
在另一个函数中spy
,因此如果您想查看调用次数,则必须使用新函数spy()
而不是原始函数scope.selectedCompetitionChanged()
。
另一种跟踪对象方法的方法如下:
var spy = chai.spy.on(scope, 'selectedCompetitionChanged');
Run Code Online (Sandbox Code Playgroud)
现在您可以scope.selectedCompetitionChanged()
像往常一样打电话,这将被视为间谍电话。
归档时间: |
|
查看次数: |
1452 次 |
最近记录: |