在过去的几周里,我一直在尝试各种方法,试图找到将 BDD 用于依赖于 HTML5 画布元素的 Web 应用程序以及与它的用户交互的最佳方法。
我一直在使用带有 Rspec 的 Jasmine 和 Cucumber 来规范和集成测试我的应用程序的每个部分,但是我不得不对画布进行集成测试的任何尝试都出现了......不成功。我编写了一个 jQuery 插件来处理与画布的交互以及对其进行初始化。
我想集成测试画布上的实际绘图,确保当你调用类似的东西时
$("canvas").draw("lineTo", 10, 10)
实际上在画布元素的点 (10,10) 上创建了一条线。这就是事实证明的变化,我尝试在任何绘制的像素上使用上下文方法 getImageData()。这让我陷入了一个困境,无论我如何查询画布,我都会得到代表黑色透明像素的像素数据,MDC 说我正在脱离上下文查询画布。
我认为这是带有 RoR 的 Jasmine gem 的问题。如果我能解决这个问题,我会很高兴,但这不是我愿意接受的唯一解决方案。即使我实际上并没有直接检查像素数据,我也真的很想帮助想一种有效的方法来集成测试画布。
感谢任何人的帮助,这真的让我陷入困境。