在 Rails 中准确测试 JavaScript 分析交付系统
Accurately testing a JavaScript analytics delivery system in Rails
我在开发大型 Rails 应用程序。我们有一个 JavaScript 功能,可以充当通用分析数据传输系统。它根据各种页面交互事件(点击、页面浏览等)发布一般分析数据,但与框架无关,因为数据并不特定于 Google Analytics 想要开箱即用的数据。这只是有关交互的一般数据。
想法是,可以编写一个用于 Google 分析(或任何其他第 3 方分析工具)的适配器模块来获取通用库生成的数据,扩充数据以满足第 3 方,并将其发送到他们的端点。
我的问题是关于准确测试此功能。
我们使用 Rspec 进行大部分测试,使用 Teaspoon 进行 JavaScript 单元测试。理想情况下,我想编写一个功能测试来导航我们的应用程序,点击各种触发元素,并确认一般分析数据被正确公布。
这有可能吗,还是我们的茶匙测试就足够了?
Rspec 集成测试可以为您做到这一点。不幸的是,这是一种非常缓慢的测试方法 javascript,但是对于性能可能不重要的回归测试,rspec 功能测试就可以完成这项工作。
我的 rspec 集成测试需要 40 分钟到 运行,所以我 运行 整个套件只有在工作休息的时候。
当然,您可以 运行 单个功能文件快得多,但它们仍然比 js 测试慢得多。
您可以 运行 使用 poltergeist 和 phantomjs 不费吹灰之力,这比使用浏览器更快,但您可能需要切换到浏览器进行调试。
我在开发大型 Rails 应用程序。我们有一个 JavaScript 功能,可以充当通用分析数据传输系统。它根据各种页面交互事件(点击、页面浏览等)发布一般分析数据,但与框架无关,因为数据并不特定于 Google Analytics 想要开箱即用的数据。这只是有关交互的一般数据。
想法是,可以编写一个用于 Google 分析(或任何其他第 3 方分析工具)的适配器模块来获取通用库生成的数据,扩充数据以满足第 3 方,并将其发送到他们的端点。
我的问题是关于准确测试此功能。
我们使用 Rspec 进行大部分测试,使用 Teaspoon 进行 JavaScript 单元测试。理想情况下,我想编写一个功能测试来导航我们的应用程序,点击各种触发元素,并确认一般分析数据被正确公布。
这有可能吗,还是我们的茶匙测试就足够了?
Rspec 集成测试可以为您做到这一点。不幸的是,这是一种非常缓慢的测试方法 javascript,但是对于性能可能不重要的回归测试,rspec 功能测试就可以完成这项工作。
我的 rspec 集成测试需要 40 分钟到 运行,所以我 运行 整个套件只有在工作休息的时候。 当然,您可以 运行 单个功能文件快得多,但它们仍然比 js 测试慢得多。
您可以 运行 使用 poltergeist 和 phantomjs 不费吹灰之力,这比使用浏览器更快,但您可能需要切换到浏览器进行调试。