我试图让我的Karma测试套件与Mocha,Chai,Sinon,Chai-as-promise和chai-sinon一起运行。
它目前只设置了mocha,chai和sinon框架。
frameworks: ['mocha', 'requirejs', 'sinon', 'chai']
现在我已经尝试添加一些额外的业力插件,即karma-chai-sinon和karma-chai-as-promise。然后将上面改为
frameworks: ['mocha', 'requirejs', 'chai-sinon', 'chai-as-promised', 'chai']
在我的单元测试中我有
expect(stub).to.not.have.been.called();
但是这给了我一个错误' TypeError:' [object Object]'不是一个功能......' 但是如果我做的话
expect(stub.called).to.equal(false);
它按预期工作。
我已经尝试检查业力插件代码,但无法理解它们,我期望在业力插件的某个地方说“chai.use(chaiAsPromised)'和' chai.use(sinonChai)'但他们没有。 Karma网站并没有真正解释插件/框架是如何工作的。
有人可以帮我解决这个问题吗?
提前致谢。
答案 0 :(得分:1)
默认情况下,任何不带参数的断言都必须在没有括号的情况下声明:
expect(stub).not.to.have.been.called;
(是的,这很奇怪。)
那是因为在这种情况下called
是一个getter函数,它实际上在 时设置断言。
如果你想使用括号将这些断言称为函数,你可以使用像dirty-chai(和karma-dirty-chai)这样的插件。