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

宾果。这种方法是否写在任何地方?感谢RSpec和您的所有工作David。 – 2010-03-16 19:48:48

+0

大卫,Rails 3有这个变化,还是我做错了?我有中间件通过重写的ActionDispatch :: ShowExceptions捕获异常,但是我的集成测试(即使我把它们放在'./ spec/integration /'中只是让异常未被捕获。 – 2011-03-14 15:34:46

我认为这是更好地与机架/测试,测试

+0

看起来不错,但我不想用另一个测试套件/宝石来测试一条路线。我相信你明白。 – 2010-03-15 20:37:56

如今(RSpec的护栏2.2.0和轨道3)可以实现,使用请求规格

按照readme file

请求规格住在规格/要求

[...]

请求规格混合在Rails集成测试中的行为。有关更多信息,请参阅ActionDispatch :: Integration :: Runner的文档。