如何解决Karma单元测试中‘framework:karma-sinon’无提供者错误?
解决Karma报错
Error: No provider for "framework:karma-sinon"的问题 嘿,我一眼就瞅出问题在哪儿了——你在frameworks数组里写了karma-sinon,但karma-sinon这个插件给Karma提供的框架标识符其实是**sinon**(不带karma-前缀),这就导致Karma找不到对应的框架提供者,抛出了这个错误。
下面是具体的修复步骤:
1. 修正frameworks配置项
把你的frameworks数组里的karma-sinon替换成sinon就行:
frameworks: ['mocha','sinon', 'chai', 'fixture']
2. 确认依赖安装正确
你已经在plugins里正确引入了require("karma-sinon"),这部分没问题,但要确保你确实已经通过包管理器安装了这个依赖:
如果还没装,执行下面的命令(根据你用的工具选):
# 使用npm npm install karma-sinon --save-dev # 使用yarn yarn add karma-sinon --dev
3. 测试验证
修改完配置后重启Karma,这个错误应该就消失了。之后你就能在测试代码里直接使用sinon的API了,比如创建间谍函数:
describe('Your AngularJS Component', () => { it('should trigger the method correctly', () => { const testSpy = sinon.spy(); testSpy(); expect(testSpy.calledOnce).to.be.true; }); });
最后提个小规律:Karma插件对应的框架名称一般都是去掉karma-前缀的部分,比如karma-chai对应chai,karma-mocha对应mocha,记住这个以后就不会再犯类似的小错误啦~
内容的提问来源于stack exchange,提问作者bier hier
相关产品推荐
相关产品推荐

