Ich habe ein paar Tests wie diese bekommen:Wie vermeidet man die Verwendung von expect_any_instance_of hammer?
it 'should invite user again' do
admin_user = create(:invited_admin_user)
expect_any_instance_of(AdminUser).to receive(:invite!).and_return(true)
patch :reinvite, params: { id: admin_user.to_param }
end
Ich möchte wirklich es so schreiben:
it 'should invite user again' do
admin_user = create(:invited_admin_user)
expect(admin_user).to receive(:invite!).and_return(true)
patch :reinvite, params: { id: admin_user.to_param }
end
Aber der Test schlägt fehl, wenn ich das tun. Irgendeine Idee, warum das passieren würde? Ich verwende factory_bot, um die AdminUser-Instanz zu erstellen.
Ich habe versucht, puts Anweisungen in den Test und die Methode einladen, um die ID zu bestätigen.
def invite!(_param1 = AdminUser.new, _param2 = {})
puts 'ID in invite!' + self.id.inspect
super(_param1, _param2)
end
it 'should invite user again' do
admin_user = create(:invited_admin_user)
puts 'adminuser created' + admin_user.id.inspect
expect(admin_user).to receive(:invite!).and_return(true)
patch :reinvite, params: { id: admin_user.to_param }
end
Ergebnis
adminuser created7768
ID in einladen! 7768
können Sie bitte fügen Sie erneut Aktion auch hinzu? – Manishh