RSpec测试导轨金属/机架?
问题描述:
假设我有一个名为Preview的Metal类。我如何使用RSpec进行测试?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' for #<ActiveSupport::TestCase::Subclass_1:0x1058b3098>
看来,如果测试没有明确的控制器RSpec的不加载了:post
方法。我试过指定:type => :controller
无济于事。
答
rspec的具有整合规范那套轨集成测试(其中经历架)。只需将该规格放入./spec/integration/preview_spec.rb
即可。
答
我认为这是更好地与机架/测试,测试
+0
看起来不错,但我不想用另一个测试套件/宝石来测试一条路线。我相信你明白。 – 2010-03-15 20:37:56
答
如今(RSpec的护栏2.2.0和轨道3)可以实现,使用请求规格:
按照readme file:
请求规格住在规格/要求
[...]
请求规格混合在Rails集成测试中的行为。有关更多信息,请参阅ActionDispatch :: Integration :: Runner的文档。
宾果。这种方法是否写在任何地方?感谢RSpec和您的所有工作David。 – 2010-03-16 19:48:48
大卫,Rails 3有这个变化,还是我做错了?我有中间件通过重写的ActionDispatch :: ShowExceptions捕获异常,但是我的集成测试(即使我把它们放在'./ spec/integration /'中只是让异常未被捕获。 – 2011-03-14 15:34:46