Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 放置助手规范(在Rails应用程序中测试其他内容的规范)的位置_Ruby On Rails_Ruby_Rspec - Fatal编程技术网

Ruby on rails 放置助手规范(在Rails应用程序中测试其他内容的规范)的位置

Ruby on rails 放置助手规范(在Rails应用程序中测试其他内容的规范)的位置,ruby-on-rails,ruby,rspec,Ruby On Rails,Ruby,Rspec,不要被标题搞糊涂了,我不是问在哪里可以放置测试Rails帮助程序的规范,而是在Rails应用程序中测试其他东西的帮助程序规范。例如,检查所有翻译是否到位的规范。或者工厂女孩工厂是有效的 我知道FactoryGirl的人建议在RSpec的前面加上这个检查:suite,但我更喜欢把它放在自己的规范文件中(例如,当我想要运行一个规范时,它不会被执行) 那么,这些规格放在什么地方呢?我把FactoryGirl的规格放在spec/models/*\u spec.rb中。比如说 # spec/models/

不要被标题搞糊涂了,我不是问在哪里可以放置测试Rails帮助程序的规范,而是在Rails应用程序中测试其他东西的帮助程序规范。例如,检查所有翻译是否到位的规范。或者工厂女孩工厂是有效的

我知道FactoryGirl的人建议在RSpec的
前面加上这个检查:suite
,但我更喜欢把它放在自己的规范文件中(例如,当我想要运行一个规范时,它不会被执行)


那么,这些规格放在什么地方呢?

我把FactoryGirl的规格放在
spec/models/*\u spec.rb
中。比如说

# spec/models/user_spec.rb
describe User do
  describe "factories" do
    it { expect(build(:user)).to be_valid }
  end
end
对于其他类型的规范,比如服务对象,我将它们放在
spec/services/*\u spec.rb
中。RSpec将自动检测它们

编辑 对于翻译,我在视图规范中测试它们。首先,将config设置为在缺少翻译时引发错误

# config/environments/test.rb
# Raises error for missing translations
config.action_view.raise_on_missing_translations = true
然后在视图规范中

describe "pages/welcome" do
  it { expect { render }.not_to raise_error }
end

它们既不是型号规格,也不是服务规格,请再次阅读我的问题。如果答案如此明显,我就不会问这个问题:)。我希望一个实用程序规范测试所有的翻译都在那里,而不是针对一个特定的视图,它确实应该存在于视图规范中。实用规格根本不适合那里…它不是模型规格,我建议你把工厂规格放在模型规格中。无论如何,更新了答案。它回答了你的问题吗?不完全…我的例子不适合你的解决方案。我在寻找更自然的东西:)我不明白“自然”是什么意思。。。看看i18n任务gem