说我np.unique
controller
我有一系列app/controllers
规格,一个用于控制器中的每个动作。如何在观看控制器时告诉guard,不仅要运行request
文件,还要运行:
spec/controllers/controller_spec.rb
spec/requests/controller/index_spec
spec/requests/controller/create_spec
spec/requests/controller/update_spec
spec/requests/controller/delete_spec
在@TheChamps帮助之后,我就这样了。这是这个用例的正确方法吗?
spec/requests/controller/show_spec
答案 0 :(得分:1)
watch
命令非常简单。通过regex,您可以定义要观看的位置和触发的内容。
从他们的文档中获取此标准命令:
watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
第一部分
watch(%r{^app/(.+)\.rb$})
它查找app
目录中以.rb
结尾的所有文件,并以路径作为参数 - 通过()
。如果保存匹配的文件,例如app/models/users.rb
,则会将model/users
传递给:
块
{ |m| "spec/#{m[1]}_spec.rb" }
通过插入传递的参数,它会在spec
目录中查找要触发的特定文件 - spec/models/user_spec.rb
。
保存控制器文件后,您希望触发位于/requests
下的任何文件以及该控制器后名为的子文件夹下的文件。现在你应该能够轻松地理解这个命令,它实现了这一目标。
watch('app/controllers/(.*)_controller.rb') { |m| "spec/requests/#{m}" }
答案 1 :(得分:-2)
您可以使用guard-rails
gem生成$ guard init rails
一个带有Rails默认配置的保护清单文件。