Ruby on rails 在测试时,是否每次在Rails 3.2中调整Javascript文件时都必须预编译资产?

Ruby on rails 在测试时,是否每次在Rails 3.2中调整Javascript文件时都必须预编译资产?,ruby-on-rails,ruby,ruby-on-rails-3.2,asset-pipeline,minitest,Ruby On Rails,Ruby,Ruby On Rails 3.2,Asset Pipeline,Minitest,我正在努力学习TDD和BDD,并以正确的方式进行。我正在使用的堆栈(或尝试使用的堆栈,Spork不适合我使用Guard)是最小型的Guard Spork Capybara。我专注于模型的单元测试和集成测试的规范 我在这个应用程序中使用了很多Ajax。我只是在我的一个测试中做了一个save_和\u open_页面,当然这个页面很糟糕,因为它找不到任何资产 我的问题是,如果我要测试JS功能,我是否必须每次都预编译资产,以便测试它们,或者是否有某种方法使管道默认为dev模式以进行测试 我确信这是一个n

我正在努力学习TDD和BDD,并以正确的方式进行。我正在使用的堆栈(或尝试使用的堆栈,Spork不适合我使用Guard)是最小型的Guard Spork Capybara。我专注于模型的单元测试和集成测试的规范

我在这个应用程序中使用了很多Ajax。我只是在我的一个测试中做了一个
save_和\u open_页面
,当然这个页面很糟糕,因为它找不到任何资产

我的问题是,如果我要测试JS功能,我是否必须每次都预编译资产,以便测试它们,或者是否有某种方法使管道默认为dev模式以进行测试


我确信这是一个n00b问题,但这就是我测试的地方。努力把事情做好。

不,你不必每次都这么做。仅在开发环境(测试环境?)中工作,生产环境和预编译用于公共工作系统。在您的工作环境中,应该有
config.assets.compile=true

您不需要编译资产,实际上您根本不需要做任何事情。save_和open_页面的工作方式不同,不会加载您的资产,因此,如果一切看起来都很糟糕,不要害怕,您的capybara测试仍然可以使用javascript正常工作,测试环境的设置没有任何更改


但是,您必须设置capybara和mini test才能使用javascript,并记住标记您的规范以激活javascript。

谢谢Sper。让我确定我明白了。为了让我的测试能够“看到”我应用程序中的实际资产,我需要在config/environments/test.rb中添加“config.assets.compile=true”。如果我正在为Javascript文件执行TDD或BDD呢?然后,测试框架如何知道如何访问新代码而不是编译后的代码。或者我把这个倒过来。我认为理想情况下,您不会针对编译的资产进行测试,而是针对原始代码进行测试。但是我的测试正在寻找编译的资产,因为当我保存和打开页面时,我可以看到样式表的路径。我认为在您的开发环境中应该是config.assets.compress=false-不是true!否则,您需要在开发时编译资产。