RSpec 控制器测试未引发错误
RSpec controller test not raising error
我刚刚注意到奇怪的 Rspec 行为。我想知道这是Rspec的错误还是我的测试方法不正确。
我有这个控制器测试(我剪掉了不需要的部分):
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
这是我长期以来一直在测试控制器的方式,考虑到检查模板和响应代码足以确保控制器呈现实际页面。
但是现在,在页面上调整表单时,我在这个操作中遇到了一个错误,我可以在浏览器中清楚地看到:
但是我刚刚发现这两个测试都通过了,而实际上却存在这个错误。
我做错了什么以及如何在我的规范中检查此错误?
您的错误来自您的视图,但默认情况下,RSpec 中的控制器测试不会呈现视图。您可以使用 rspec-rails
的 render_views 方法来强制您的控制器规范呈现视图。
我刚刚注意到奇怪的 Rspec 行为。我想知道这是Rspec的错误还是我的测试方法不正确。
我有这个控制器测试(我剪掉了不需要的部分):
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
这是我长期以来一直在测试控制器的方式,考虑到检查模板和响应代码足以确保控制器呈现实际页面。
但是现在,在页面上调整表单时,我在这个操作中遇到了一个错误,我可以在浏览器中清楚地看到:
我做错了什么以及如何在我的规范中检查此错误?
您的错误来自您的视图,但默认情况下,RSpec 中的控制器测试不会呈现视图。您可以使用 rspec-rails
的 render_views 方法来强制您的控制器规范呈现视图。