0
我是RSpec的新手,这个错误对我来说都是新的。一切似乎都是常规的,所以我似乎无法自己调试这个问题。错误:预期结果已被更改1,但被更改为0.我将发布我的代码以清晰起见。预期结果已经改变了1,但被改变了0
SUBSCRIBER FACTORY:
FactoryGirl.define do
factory :subscriber do
first_name "Tyler"
last_name "Durden"
email "[email protected]"
phone_number "8765555"
end
end
CONTROLLER:
class CommentsController < ApplicationController
def new
@comment = Comment.new
end
def create
@subscriber = Subscriber.order('updated_at desc').first
@comment = @subscriber.comments.build(comments_params)
if @comment.save
flash[:notice] = "Thank you!"
redirect_to subscribers_search_path(:comments)
else
render "new"
end
end
private
def comments_params
params.require(:comment).permit(:fav_drink, :subscriber_id)
end
end
SPEC:
require "rails_helper"
describe SubscribersController do
include Devise::TestHelpers
let(:user) { FactoryGirl.create(:user) }
let(:subscriber) { FactoryGirl.attributes_for(:subscriber) }
it "creates a new comment" do
sign_in(user)
comment = FactoryGirl.attributes_for(:comment)
expect { post :create, subscriber: subscriber, comment: comment }.to change{ Comment.count }.by(1)
end
end
ERROR:
Failure/Error: expect { post :create, subscriber: subscriber, comment: comment }.to change{ Comment.count }.by(1)
expected result to have changed by 1, but was changed by 0
# ./spec/controllers/comment_spec.rb:13:in `block (2 levels) in <top (required)>'
请提供你的助手和控制器的实际代码有问题 – Ilya
我就可以很感谢你的帮助。 – Bitwise
请问你'subscriber'工厂是什么样子?请问你'Comment'模型有什么瓦利dators? – spickermann