Ruby on rails 我可以让RSpec使用expect语法生成规范吗?

Ruby on rails 我可以让RSpec使用expect语法生成规范吗?,ruby-on-rails,rspec,Ruby On Rails,Rspec,使用以下工具生成等级库时: rails g controller Home index 使用旧的object.should语法生成规范 require 'spec_helper' describe HomeController do describe "GET 'index'" do it "returns http success" do get 'index' response.should be_success end end

使用以下工具生成等级库时:

rails g controller Home index
使用旧的object.should语法生成规范

require 'spec_helper'

describe HomeController do   
  describe "GET 'index'" do
    it "returns http success" do
      get 'index'
      response.should be_success
    end
  end  
end
是否可以将生成器配置为使用expect语法?

期望输出:

require 'spec_helper'

describe HomeController do

  describe "GET 'index'" do
    it "returns http success" do
      get 'index'
      expect(response).to be_success
    end
  end

end
在config/application.rb中:

config.generators do |g|
  g.test_framework :rspec, fixture: true
  g.fixture_replacement :factory_girl, dir: 'spec/factories'
  g.view_specs false
  g.stylesheets = false
  g.javascripts = false
end

对。我没有为我的控制器做过,但我为模型做过。应该是相同的过程。对于我的模型,我创建了具有以下内容的
lib/templates/rspec/model/model_spec.rb

require 'spec_helper'

describe <%= class_name %> do

  let(:<%= singular_name %>) { FactoryGirl.create(:<%= singular_name %>) }

  it "should be valid from the factory" do
    expect(<%= singular_name %>).to be_valid
  end

end
require'spec\u helper'
描述
让(:){FactoryGirl.create(:)}
它“应该在工厂有效”吗
expect().是有效的
结束
结束

如果你这样做了,发布你的解决方案。它也让我讨厌,所以我不介意使用您的版本:-)

在3.0.0.rc1版中提供<代码>gem'rspec',“~>3.0.0.rc1”

我深入研究,似乎只有一组模板。所以答案是否定的。但这是一个非常好的解决方法,所以我将接受它。很好的解决方案。如果我读对了你的模板,你应该把你的
let
换成
主题
。为什么不能在expect块中使用
单数\u name
?@Shepmaster-我从来都不喜欢
主题
。是的,我应该能够使用
单数\u name
。我想我只是把它放在一起,它工作了,我就不去管它了:)我会更新代码。那更好。你不喜欢这个主题真是太遗憾了。我发现它澄清了测试的实际作用-
let
用于依赖项,
subject
用于有趣的事情。此外,它还支持简短的测试:
it{should\u valid}
True。有些日子我考虑过,但就是从来没想到过。我想这有点太神奇了。这已经被修正了,不再相关了,耶!