Ruby on rails 使用RSpec测试金属轨道/机架?
假设我有一个名为Preview的金属类。如何使用RSpec测试它 当我尝试时:Ruby on rails 使用RSpec测试金属轨道/机架?,ruby-on-rails,rspec,rack,Ruby On Rails,Rspec,Rack,假设我有一个名为Preview的金属类。如何使用RSpec测试它 当我尝试时: require 'spec_helper' describe Preview do it "should return the posted content" do post "/preview", :content => "*title*" response.body.should == "*title*" end end 我得到: undefined method `post
require 'spec_helper'
describe Preview do
it "should return the posted content" do
post "/preview", :content => "*title*"
response.body.should == "*title*"
end
end
我得到:
undefined method `post' for #<ActiveSupport::TestCase::Subclass_1:0x1058b3098>
未定义的方法“post”#
如果测试没有明确针对控制器,RSpec似乎不会加载
:post
方法。我尝试过指定:type=>:controller
,但没有效果。我认为最好使用rack/test进行测试rspec有集成规范来包装rails集成测试(通过rack)。现在,只需将该规范放入/spec/integration/preview_spec.rb
即可(rspec rails 2.2.0和rails 3),您可以使用请求规范来实现这一点:
根据报告:
请求规格活在规格/请求中
[……]
从Rails的集成测试中请求规范混合行为。有关更多信息,请参阅ActionDispatch::Integration::Runner的文档
看起来不错,但我不想使用另一个测试套件/gem来测试一条路由。我相信你能理解,宾果。这个方法是在什么地方写出来的?感谢RSpec和您的所有工作David.David,Rails 3的这一点是否有所改变,或者我只是做错了?中间件通过重写的ActionDispatch::ShowExceptions捕获了异常,但我的集成测试(即使我将它们放在
/spec/integration/
中)只是不捕获异常。