我有一些使用AngularJS/Rails构建的应用程序,其中Rails部分仅作为JSON API,所有前端工作都由AngularJS完成。我已经使用RSpec制作了模型/控制器测试,并且现在想进行一些集成测试。以前,我使用RSpec的请求测试(使用Capybara、Selenium)来测试我的页面/JS,但Angular通常是使用Karma/Jasmine进行测试,而我不知道在Angular/Rails应用程序中哪种方式更受欢迎。请给我建议,也许您可以与我分享一些经验。谢谢。
首先,您应该明智地测试一切。我建议从下面的链接中阅读一系列优秀的博客文章。
既然您已经熟悉了RSpec,请继续在Rails上使用它进行测试,例如模型、控制器、请求等。
对于您的Angularjs测试,karma和Jasmine是很好的选择。但是Rails使用Sprockets进行资产管理,因此配置karma可能有点棘手。对于Rails和Jasmine,我编写了一个rake任务。要运行JavaScript测试,只需运行rake karma:start
。我在下面分享了gist的链接。
gist包含2个文件。您应该将它们放在:
最后,您应该使用Capybara运行功能/接受测试。