我是Ruby和Rails的新手,这就是为什么我要通过Michael Hartl的Rails教程.我被困在第9章,练习#9.我已将用户控制器中的def destroy代码更新为:
def destroy
user = User.find(params[:id])
if (current_user == user) && (current_user.admin?)
flash[:error] = "Can not delete own admin account!"
else
user.destroy
flash[:success] = "User destroyed."
end
redirect_to users_path
end
Run Code Online (Sandbox Code Playgroud)
当我在浏览器中测试时,通过在管理员登录时向current_user添加"删除"链接,这似乎有效.但是练习说先写一个测试 - 我做了但似乎没有用.这是我测试的内容:
describe "as admin user" do
let(:user_admin) { FactoryGirl.create(:admin) }
before { sign_in user_admin }
describe "submitting a DELETE request to destroy own admin account" do
before { delete user_path(user_admin) }
it { should have_selector('div.alert.alert-error', text: 'delete own admin') }
end
end
Run Code Online (Sandbox Code Playgroud)
也许我测试的不应该被测试.如何测试用户控制器中def def代码的修改?