首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用rspec-rails测试控制器?

如何使用rspec-rails测试控制器?
EN

Stack Overflow用户
提问于 2012-11-02 05:12:44
回答 2查看 165关注 0票数 2

我想测试我的编辑配方页面是否使用rspec呈现,尽管它不会路由到

代码语言:javascript
复制
    recipes/edit

它路由到recipes/id/edit (id被替换为一个数字)

我当前的测试如下所示

代码语言:javascript
复制
 describe "Show Edit Recipe Page" do

  it "should display edit recipe  page" do
    get :edit
    response.should be_success
    response.should render_template(:edit)
  end
end

当我的测试失败的时候,我怎样才能正确地测试这个页面

EN

回答 2

Stack Overflow用户

发布于 2012-11-02 05:26:59

问题

您的示例不包含实际测试控制器对象所需的代码。您的等级库中未定义RecipeController。

解决方案

确保你的控制器规范在spec/ controller下,或者有一个明确的type: :controller设置。然后,使用隐式主题或通过在之前或测试块中设置控制器实例来实际描述控制器。作为最基本的例子:

代码语言:javascript
复制
describe RecipeController do
  # test something using the implied RecipeController.new
end

更多阅读

RSpec Controller Specs

票数 2
EN

Stack Overflow用户

发布于 2012-11-02 05:28:30

get需要在参数散列中传递的配方的id:

代码语言:javascript
复制
let(:recipe) { Factory.create(:recipe) }

it "should display edit recipe page" do
  get :edit, :id => recipe.id
  response.should be_success
  response.should render_template(:edit)
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13185552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档