测试 spec 测试 edit,update,destory

ane · 2014年02月21日 · 最后由 u1378130755 回复于 2014年02月21日 · 2749 次阅读

我就简单的写了个 Request specs 测试 ---widgets_controller.rb

describe "Widget other  management" do
    it "create a Widget an redirects to the Widget's page " do
      get "widgets/"
      expect(response).to render_template(:index)

      get "widgets/1/edit"
      expect(response).to render_template(:edit)

      get "widgets/1"
      expect(response).to render_template(:update)

      post "widgets/1", widget: {:name => "My Widget"}
      follow_redirect!

      expect(response).to render_template(:show)
      expect(response.body).to include("Widget was successfully updated.")

    end
  end

get "widgets/"肯定是没有问题的

但是我想测试 edit,update,destory ,我该怎么写?get "widgets/1/edit"提示没有 id=1,其实我想写成 get"widgets/id/edit"

======================= 怎么没人回答了,这个是不属于功能测试,应该用 capybara?

先要创建一个 id 为 1 的对象。

#1 楼 @Rei 我是建了一个 id=1 的。是不是需要 rails s 跑起来,才能测?

#2 楼 @u1378130755 会不会是那个对象是你手动创建在 development 环境下的数据库中,而不是在 test 环境下的数据库中

写一个

before(:each) do
  ## initilize data
end

#3 楼 @reyesyang 是的,的确如此

需要 登录 后方可回复, 如果你还没有账号请 注册新账号