在Rails中准确测试JavaScript分析交付系统

Accurately testing a JavaScript analytics delivery system in Rails

本文关键字:交付 系统 JavaScript 测试 Rails      更新时间:2023-09-26

我在一个大型Rails应用程序上工作。我们有一个JavaScript功能,它可以作为一个通用的分析数据传递系统。它公布了基于各种页面交互事件(点击、页面浏览等)的一般分析数据,但与框架无关,因为这些数据并不是谷歌分析想要的特定数据。这只是关于交互的一般数据。

其想法是,可以编写谷歌分析(或任何其他第三方分析工具)的适配器模块,以获取通用库生成的数据,增强数据以满足第三方的需求,并将其发送到他们的端点。

我的问题是关于准确测试这个功能。

我们在大部分测试中使用Rspec,在JavaScript单元测试中使用Teaspoon。理想情况下,我想写一个功能测试,导航我们的应用程序,点击各种触发元素,并确认通用分析数据的发布是正确的。

这有可能吗,或者我们的Teaspoon测试就足够了吗?

Rspec集成测试可以为您做到这一点。不幸的是,这是一种测试javascript的非常缓慢的方法,但对于性能可能并不重要的回归测试,rspec特性测试可以完成这项工作。

我的rspec集成测试需要40分钟才能运行,所以我只在工作间隙运行整个套件。当然,您可以更快地运行单个功能文件,但它们仍然比js测试慢得多。

您可以使用poltergeist和phantomjs无头地运行它们,这比使用浏览器更快,但您可能需要切换到浏览器进行调试。