gpt4 book ai didi

ruby-on-rails - 如何期待 'render template' 错误

转载 作者:太空宇宙 更新时间:2023-11-03 18:08:28 25 4
gpt4 key购买 nike

我有一个 View 模板“show.html.haml”,类似

- if current_user.admin?
balabala

它将得到“undefined method `admin?'”对于 nil:NilClass"而 GET #show。我用“- if !current_user.nil? && current_user.admin?”修复了它。我想用 RSpec 添加一个测试用例。

describe "before login user - " do

it "render the show template" do
book = FactoryGirl.create(:book)
get :show, id: book.id

expect(response).to render_template("show")
expect(response).to be_success
end
end

在运行“bin/rake spec”时,无论我是否添加条件“!current_user.nil?”,它总是会成功。当我想检查渲染“显示” View 是否成功时,如何编写 expect 子句?

最佳答案

当您尝试测试来自 controller spec 的 View 内容时,你不能直接这样做。

您可以使用 render_views声明这样做,但不推荐,您应该选择 request specfeature spec测试完整的请求-响应周期。

全局设置render_views:

RSpec.configure do |config|
config.render_views
end

规范:

describe "before login user - " do
it "render the show template" do
book = FactoryGirl.create(:book)
get :show, id: book.id
expect(response).to render_template("show")
expect(response.body).to match /balabala/
end
end

关于ruby-on-rails - 如何期待 'render template' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39189748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com