如何测试JavaScriptSVG/Canvas应用程序
How to test a JavaScript SVG/Canvas application?
我们正在评估使用SVG和Canvas等HTML5技术的图形JavaScript应用程序的未来工作。一个大问题(与所有以UI为中心的应用程序一样)是如何为所有功能编写测试。如果我们只能测试JavaScript逻辑是不够的,但我们还需要知道接口是否正常工作。
因此,我们至少需要像Selenium这样的东西,使我们能够与SVG/Canvas进行交互。当然,也必须有某种框架来为绘图背后的逻辑编写普通的单元测试。它应该是免费使用的。
有这样的东西吗?此外,由于我们以前根本没有测试这类软件的经验,我们将感谢任何关于如何解决我们的问题以及通常如何做到这一点的提示。我相信,我们不是第一个考虑这个问题的人。
提前感谢!
我很感激这并不能完全回答您的问题,但就单元测试而言,JavaScripts松散类型使生成mock对象变得非常容易,以确保您的应用程序逻辑与Canvas元素正确交互(例如)。例如,如果你有一个在cavas上绘制东西的函数:
function drawSomething(canvas){
var ctx = canvas.getContext('2d');
ctx.fillRect(10, 10, 55, 50);
}
然后你可以这样测试:
function testdrawSomething(){
var mockCanvas = {};
var mockCtx = {};
mockCanvas.getContext = function(){
return mockCtx;
};
mockCtx.fillRect = function(a,b,c,d){
// test values here
}
drawSomething(mockCanvas);
}
我已经使用RhinoUnit和这种方法为UI密集型HTML5网站生成了一些非常全面的单元测试,如果你仔细编写代码(将所有对DOM元素的引用作为参数传递到你想要测试的函数中),你就可以在浏览器外运行所有单元测试,使它们成为CI管道的一部分。
显然,您还需要运行一些浏览器内测试,这就是Selenium的用武之地
相关文章:
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- IE9的HTML5 Canvas getImageData()函数存在问题
- Canvas+svg路径动画,在路径中的特定点暂停一段时间,然后继续
- 查找带有边框的HTML5 Canvas(点击)事件的坐标
- 加速我的复杂函数绘图仪(canvas+javascript)
- Canvas赢得't更新
- 在keydown(JS,Jquery)上更改HTML5 Canvas元素
- HTML5 Canvas访问控制允许原始错误
- Jasny bootstrap Off Canvas菜单:如何在导航栏下强制菜单滑动
- 在fabric.js中以PNG格式下载Canvas,给出网络错误
- 如何使用Canvas制作3D动画
- 带有内置图像对象的Canvas组件构造函数;t显示's图像
- Javascript Canvas使用getImageData(x,y,1,1).data获取颜色
- HTML5 Canvas toDataURL(“image/png”)适用于一些绘画,而有些则不然,不确定原因
- Canvas.toDataUrl(“image/png”)工作不正常
- Javascript和Canvas绘制中间有孔的圆
- 以编程方式将fabric-js-canvas的图像替换为hq图像,并重新计算其他对象的坐标和大小
- canvas没有从uri中绘制完整的图像
- jQuery QRcode不适用于canvas
- 如何测试JavaScriptSVG/Canvas应用程序