0
は、私は次のPOST /#createでユニットテストに失敗したのはなぜですか?
brokers_controller.rb
class BrokersController < ApplicationController
before_action :authenticate_broker!
before_action :set_broker, only: [:show, :edit, :update, :approve, :destroy]
# GET /brokers
# GET /brokers.json
def index
if current_user && current_user.admin
@brokers = Broker.all
else
@brokers = Broker.where(approved: true)
end
end
# GET /brokers/1
# GET /brokers/1.json
def show
end
# GET /brokers/new
def new
redirect_to brokers_path # brokers can't create brokers
@broker = Broker.new
end
# GET /brokers/1/edit
def edit
end
# POST /brokers
# POST /brokers.json
def create
redirect_to brokers_path
return
# @broker = Broker.new(broker_params)
#
# respond_to do |format|
# if @broker.save
# format.html { redirect_to @broker, notice: 'Broker was successfully created.' }
# format.json { render :show, status: :created, location: @broker }
# else
# format.html { render :new }
# format.json { render json: @broker.errors, status: :unprocessable_entity }
# end
# end
end
brokers_controller_test.rb
require 'test_helper'
class BrokersControllerTest < ActionDispatch::IntegrationTest
include Warden::Test::Helpers
setup do
@broker = brokers(:one)
login_as(@broker, :scope => :broker)
end
teardown do
Warden.test_reset!
end
test "should get index" do
get brokers_url
assert_response :success
end
test "should get new" do
get new_broker_url
assert_response :redirect
assert_redirected_to brokers_url
end
test "should create broker" do
# assert_no_difference('Broker.count') do
post brokers_url, params: { broker: { email: @broker.email, name: @broker.name } }
# end
assert_redirected_to brokers_url
end
ログイン
>rails test test/controllers/brokers_controller_test.rb:26
Run options: --seed 52623
# Running:
F
Failure:
BrokersControllerTest#test_should_create_broker [C:/Users/Chloe/workspace/test/controllers/brokers_controller_test.rb:31]:
Expected response to be a redirect to <http://www.example.com/brokers> but was a redirect to <http://www.example.com/>.
Expected "http://www.example.com/brokers" to be === "http://www.example.com/".
bin/rails test test/controllers/brokers_controller_test.rb:26
はそれがルートにリダイレクトし続けていますが、私は理由を見ることはできません。 "インデックスを取得する"と "新しいテストを取得する必要があります" OKを実行します。
これを理解する上でのおめでとうございます! –