集成测试画布

aus*_*nbv 5 integration-testing canvas jasmine

在过去的几周里,我一直在尝试使用方法,试图找到将BDD用于Web应用程序的最佳方法,该应用程序依赖于HTML5 canvas元素,以及用户与它的交互.

我一直在用茉莉和黄瓜Rspec的,符合规格和集成测试我的应用程序的每一个部分,但任何企图,我不得不集成测试画布已经拿出...不成功.我写了一个jQuery插件,它处理与画布的交互以及初始化它.

我希望Intergration测试画布上的实际绘图,确保当你调用类似的东西时

$("canvas").draw("lineTo", 10, 10)
Run Code Online (Sandbox Code Playgroud)

实际上在点(10,10)处的画布元素上创建了一条线.这已经证明了改变,我试图在任何绘制的像素上使用上下文方法getImageData().这导致我进入一个洞,无论我如何查询画布,我得到的像素数据代表一个黑色透明像素,MDC表示我正在查询画布上下文.

我认为这与使用RoR的Jasmine gem有关.如果我能解决这个问题,我会很高兴,但这不是我愿意接受的唯一解决方案.我真的想帮助想一个有效的方法来集成测试画布,即使我实际上没有直接检查像素数据.

感谢任何人的帮助,这真的让我陷入困境.

小智 4

我编写了一个工具 js-imagediff,它与 Jasmine 集成来测试画布。您可以在此处查看示例:使用 javascript imagediff 和 jasmine 进行单元测试画布。让我知道这是否有用。

然而,它确实使用 getImageData 来进行比较。您在该调用中遇到特定错误吗?或者您是否有您所指的 MDC 页面的链接?