我有一个名为 ResetPassword 的服务对象,它处理 ResetPassword 控制器创建操作的所有逻辑。我也已经测试过服务对象。我应该模拟服务对象吗?我想我应该这样做,因为它已经过测试,并且会减少运行规格。到目前为止,我对控制器的测试代码如下。不确定是否应该这样写。
require 'spec_helper'
describe ResetPasswordController do
describe "POST create" do
context "when email matches a user" do
let(:user) { Fabricate(:user) }
it "calls password_reset on PasswordReset" do
ResetPassword.stub(:reset_password)
ResetPassword.any_instance.should_receive(:reset_password)
post :create, email: user.email
end
it "redirects to root path" do
post :create, email: user.email
expect(response).to redirect_to root_path
end
end
context "when email doesn't match a user" do
it "redirects to new"
it "displays a flash error"
end
end
end