5

我试图学习TDD和BDD,并以正确的方式做到这一点。 Minitest-Guard-Spork-Capybara我正在使用的堆栈(或试图使用的,Spork不适用于Guard)。我正在关注集成测试的模型和规格的单元测试。测试时,每次我在Rails 3.2中调整Javascript文件时,是否必须预先编译资源?

我在这个应用程序中有很多Ajax。我在我的一个测试中做了一个save_and_open_page,当然这个页面当然很糟糕,因为它找不到任何资产。

我的问题是,如果我测试JS的功能,我必须预编译的资产每一次,以测试它们,或者是有一些办法有管道默认为dev的模式来进行测试目的。

我确定这是一个n00b问题,但这正是我在测试中的地方。试图做正确的事情。

回答

2

你不需要编译资产,实际上你根本不需要做任何事情。 save_and_open_page工作方式不同,不会加载资源,因此如果一切都看起来很丑,不要担心,您的水豚测试仍然可以在javascript中正常工作,而且不会对测试环境进行任何更改。

但是,您必须设置水豚和迷你测试来使用JavaScript,并记住标记您的规格来激活JavaScript。

3

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

+0

谢谢Sper。让我确定我明白了。为了让我的测试可以“查看”应用程序中的实际资产,我需要将“config.assets.compile = true”添加到我的config/environments/test.rb中。 如果我正在为JavaScript文件进行TDD或BDD,该怎么办?测试框架如何知道如何访问新代码而不是编译代码。或者我有这个倒退。我认为理想情况下,你不会*测试编译资产,而是反对原始代码。但我的测试正在寻找编译资产,因为我可以在save_and_open_page时看到样式表的路径。 – AKWF 2013-05-01 15:40:08

+0

我认为在你的开发环境中应该是config.assets.compress = false - 不正确!否则你需要在开发时编译你的资产。 – Mattherick 2013-05-07 16:35:23

相关问题