我正在编写控制器规范,但对于这个特定的控制器,测试表现得很奇怪。它似乎根本不会进入控制器。
规范:
require 'rails_helper'
require './app/controllers/entidades_controller'
describe EntidadesController do
describe '#create' do
context 'quando parametros validos' do
it 'cria entidade' do
expect {
post :create, entidade: {cnpj: '84.215.775/0001-74'}
}.to change {Entidade.count}.by(1)
end
end
end
end
控制器:
def create
abort("?????????????????????????????????????????????????????????")
@entidade = Entidade.new(entidade_params)
@entidade.status = true
respond_to do |format|
if @entidade.save
configuracao_inicial
format.html { redirect_to @entidade, notice: 'Entidade criada com sucesso.' }
format.json { render :show, status: :created, location: @entidade }
else
puts "#{@entidade.errors.full_messages}"
format.html { render :new }
format.json { render json: @entidade.errors, status: :unprocessable_entity }
end
end
end
运行此规范时,执行应该被中断,并且一旦到达abort
行就应该打印问号,我之前在其他测试用例中使用过它。然而,这是测试的输出:
F
Failures:
1) EntidadesController#create quando parametros validos cria entidade
Failure/Error:
expect {
post :create, entidade: {cnpj: '84.215.775/0001-74'}
}.to change {Entidade.count}.by(1)
expected result to have changed by 1, but was changed by 0
# ./spec/controllers/entidades_controller_spec.rb:10:in `block (4 levels) in <top (required)>'
Finished in 0.13257 seconds (files took 3.78 seconds to load)
1 example, 1 failure
Failed examples:
rspec ./spec/controllers/entidades_controller_spec.rb:9 # EntidadesController#create quando parametros validos cria entidade
我在这里做错了什么?