create
コントローラーのメソッドのテストで問題が発生しました。私のテスト:
describe "POST #create" do
it "creates a new admin_user" do
expect{
post :create, :admin_user => FactoryGirl.attributes_for(:admin_user)
}.to change(Admin::User,:count).by(1)
end
end
そして、私が得ている失敗した仕様:
1) Admin::UsersController logged in POST #create creates a new admin_user
Failure/Error: expect{
count should have been changed by 1, but was changed by 0
# ./spec/controllers/admin_users_controller_spec.rb:75:in `block (4 levels) in <top (required)>'
これが私のコントローラーです:
def create
@admin_user = Admin::User.new(params[:admin_user])
if @admin_user.save
render nothing: true
end
end
そして工場:
require "factory_girl"
require 'ffaker'
FactoryGirl.define do
factory :admin_user, class: "Admin::User" do |f|
f.name {Faker::Name.first_name}
f.email {Faker::Internet.email}
f.password "aaa"
end
end
と私のモデル:
class Admin::User < ActiveRecord::Base
has_secure_password
validates :email, :uniqueness => true, :presence => true
validates_presence_of :password, :on => :create
end
何が間違っているのかわかりません。インターネット全体を検索しましたが、答えが見つかりませんでした。Rails コンソールからのユーザーの追加は問題なく機能します。どんな助けでも大歓迎です。前もって感謝します。