【发布时间】:2014-04-04 23:30:40
【问题描述】:
我对 Rails 很陌生,我需要测试与 javascript 相关联的代码。经过一番研究,我发现这并不难。
http://asciicasts.com/episodes/257-request-specs-and-capybara
所以现在我在我的规范中的示例中添加“:js => true”,一切都很好。要使其正常工作,您必须更新您的 spec_helper 文件以不将测试作为事务性运行,并添加 database_cleaner gem 以在每次运行测试时清除数据。
我知道现在能够测试包含 javascript 的代码很棒,但是每次都清除数据库肯定很烦人吗?由于我还很新,我仍然使用前端来做出决定。当我不是 100% 的语法并且在 Rails 中实现东西时,做纯 TDD 是非常困难的。每次我想通过前端查看事物的样子时,我都需要手动重新创建所有数据。我可能会编写一个脚本来插入默认数据,这似乎因为我的测试而编写了更多代码(这可能是我应该做的......我不确定)。
是否有另一种方法可以使用 javascript 运行我的测试,以便我的测试仍然是事务性的?我正在运行我的测试环境,所以每次我保存一个规范文件时,我的数据库都会被清除(用户和所有)!
有没有办法只为测试环境运行守卫并保留我的开发数据?
谢谢。
【问题讨论】:
标签: rspec ruby-on-rails-4 capybara