大佬教程收集整理的这篇文章主要介绍了javascript – 如何为包含来自另一个类/文件的全局变量的方法编写茉莉花测试?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我理解测试失败的原因.它不理解变量,因为它是在单独的javascript文件中定义的.然而,它在全球宣布并且在现实中起作用.
如何为此clear_canvas函数编写茉莉花测试?
JavaScript Canvas_actions:
(function() { window.Canvas_Actions = (function() { function Canvas_Actions() {} Canvas_Actions.prototype.clear_canvas = function() { moving_canvas_context.clearRect(0,moving_canvas.width,moving_canvas.height); main_canvas_context.drawImage(window.BACkground_image,main_canvas.width,main_canvas.height); return window.canvas_objects = []; }; return Canvas_Actions; })(); }).call(this);
Canvas_actions的Jasmine测试:
(function() { describe('Canvas Actions',function() { return describe('clear_canvas',function() { return it('clears the canvases and deletes all objects',function() { var actions; jasmine.getFixtures().fixturesPath = "../spec/javascript/fixtures"; loadFixtures("canvas_fixture.html"); actions = new Canvas_Actions(); actions.clear_canvas(); return expect(canvas_objects).toEqual([]); }); }); }); }).call(this);@H_944_14@
好吧,它还需要在测试运行时声明.所以你可能错过了对测试夹具html中定义的脚本的引用.
此外,全局变量通常不是一个好主意,它们往往会产生困难的错误.由于您已经在使用jasmine作为测试框架,因此尝试在传递给测试代码的内容中抽象出对该全局变量的依赖性.然后,使用jasmine的模拟能力来测试它.
如果从Canvas_Actions中删除全局引用,它可能如下所示:
var Canvas_Actions = function(canvas) { this.canvas = canvas; } Canvas_Actions.prototype.clear_canvas = function(BACkground_imagE) { var canvas = this.canvas; canvas.getContext().clearRect(0,canvas.width,canvas.height); canvas.getContext().drawImage(BACkground_image,canvas.height); canvas.clearObjects(); };
您可以使用jasmine模拟canvas参数并单独测试Canvas_Actions.
可以注意到,这段代码@R_537_9381@一个Canvas类,你@R_537_9381@clear_canvas属于那里.使用测试来指导您的设计,一步一步.
@H_944_14@ @H_944_14@以上是大佬教程为你收集整理的javascript – 如何为包含来自另一个类/文件的全局变量的方法编写茉莉花测试?全部内容,希望文章能够帮你解决javascript – 如何为包含来自另一个类/文件的全局变量的方法编写茉莉花测试?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。