新手问题 Rails Tutorial 学习问题

yufw · 2014年03月11日 · 最后由 yufw 回复于 2014年03月12日 · 2517 次阅读

我照着 Rails Tutorial 做到了第九章,这一段测试代码通不过,

describe "User pages" do
  .
  .
  .
  describe "edit" do
    let(:user) { FactoryGirl.create(:user) }
    before { visit edit_user_path(user) }

    describe "page" do
      it { should have_content("Update your profile") }
      it { should have_title("Edit user") }
      it { should have_link('change', href: 'http://gravatar.com/emails') }
    end

    describe "with invalid information" do
      before { click_button "Save changes" }

      it { should have_content('error') }
    end
  end
end

应该有的 content, title, link 都说没有,还有找不到 "Save changes" 按钮,但是我从浏览器中打开编辑页面发现这些元素都存在,这是怎么回事呢?

capybara-screenshot 截个图看看

let(:user) { FactoryGirl.create(:user) }
    before { visit edit_user_path(user) }

这里应该使这样子的吧,你没有模拟登录怎么去获取对应页面呢?

let(:user) { FactoryGirl.create(:user) }
    before do
      sign_in_user
      visit edit_user_path(user) 
    end

#2 楼 @floger 原书中 Listing 9.1 就是我那么写的,但是我从 GitHub 上 clone 了作者的源代码,发现正是你这么写的。应该就是没有登录的原因。这么看来应该是书中写错了。谢谢。

这两天我在重读这本书。不知怎么的,我自然而然写成了二楼的样子。所以读书的时候要注重思路,以及练习的时候多思考:)

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