我刚刚注意到奇怪的 Rspec 行为。不知道是Rspec的错误还是我测试的方法不对。
我有这个 Controller 测试(我剪掉了不必要的部分):
describe 'GET #new' do
def get_new(group_id = nil)
get :new, group_id: group_id
end
context 'with logged in user' do
context 'with group_id' do
let(:group) { create(:group) }
before { get_new(group.to_param)}
it 'renders correct template' do
expect(response).to render_template(:new)
end
it 'returns success' do
expect(response).to be_success
end
end
end
end
这是我长期以来一直在测试 Controller 的方式,考虑到检查模板和响应代码足以确保 Controller 呈现实际页面。
但是现在,在页面上调整表单时,我在这个操作中遇到了一个错误,我可以在浏览器中清楚地看到: 但是我刚刚发现这两个测试都通过了,而实际上却存在这个错误。
我做错了什么以及如何在我的规范中检查此错误?
最佳答案
您的错误来自您的 View ,但默认情况下,RSpec 中的 Controller 测试不会呈现 View 。您可以使用 rspec-rails
的 render_views强制 Controller 规范呈现 View 的方法。
关于ruby-on-rails - RSpec Controller 测试未引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42808730/