gpt4 book ai didi

html - 模拟 document.getElemetById ('.form' ).getContext ('2d' ) 使用 sinon

转载 作者:太空狗 更新时间:2023-10-29 15:40:38 25 4
gpt4 key购买 nike

我使用 karma、mocha、chai、sinon 和 Angular 模拟进行单元测试。在我的 $scope.loadChart 中,我正在 Canvas 标签中绘制图表。我正在使用 http://www.chartjs.org/绘制图表。

Chartjs 需要这段代码,document.getElemetById('#canvas').getContext('2d')。我如何在 Sinon 中 stub 这个?我的测试卡在了这一行。

最佳答案

您可以 stub document.getElementById 并让它返回一个 Canvas 对象,该对象被 stub 并编程为返回您选择的上下文对象...

//Create your fake canvas and context objects
var canvas = document.createElement('canvas');
var fakeContext = {}; //Replace this with whatever you want your fake context to be

//Have `canvas.getContext('2d')` return your fake context
sinon.stub(canvas, 'getContext');
canvas.getContext.withArgs('2d').returns(fakeContext);

//Have `document.getElementById('canvas')` return your canvas
sinon.stub(document, 'getElementById');
document.getElementById.withArgs('canvas').returns(canvas);

关于html - 模拟 document.getElemetById ('.form' ).getContext ('2d' ) 使用 sinon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30454025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com