【发布时间】:2014-08-08 18:22:59
【问题描述】:
我正在关注 Michael Hartl 的 Ruby on Rails 教程。
在他的清单 9.42 中,他在索引页面上展示了一个删除用户链接的测试。Ž
测试应该确保具有admin: true 属性的用户在用户的索引页面(用户的列表页面)上看到delete 链接。
另外,管理员(第一个用户)不应该看到删除自己的链接。
测试代码如下:
describe "delete links" do
it { should_not have_link('delete') }
describe "as an admin user" do
let(:admin) { FactoryGirl.create(:admin) }
before do
sign_in admin
visit users_path
end
it { should have_link('delete', href: user_path(User.first)) }
it "should be able to delete another user" do
expect do
click_link('delete', match: :first)
end.to change(User, :count).by(-1)
end
it { should_not have_link('delete', href: user_path(admin)) }
end
end
这段代码让我感到困惑的是:
在我看来,describe 块中的第一个 it 子句似乎是合乎逻辑的
其中提到了 User.first 的路径(这里是 admin,因为 admin 在数据库中是第一位的)
与 describe 块中的第三个 it 子句冲突,这需要
指向管理员删除的链接不存在。
我错过了什么吗?
我什至还没有运行这个东西,但在我看来它必须失败。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 rspec capybara railstutorial.org