Wie können diese zerstören-Aktion getestet werden mit RSpec?

In meiner Rails-app, wenn ein user löschen will seinen eigenen account, wird er zunächst zur Eingabe seines Passwortes in meinem terminate anzeigen:

<%= form_for @user, :method => :delete do |f| %>

  <%= f.label :password %><br/>
  <%= f.password_field :password %>

  <%= f.submit %>

<% end %>

Dies ist mein UsersController:

def terminate
  @user = User.find(params[:id])
  @title = "Terminate your account"
end

def destroy
  if @user.authenticate(params[:user][:password])
    @user.destroy
    flash[:success] = "Your account was terminated."
    redirect_to root_path
  else
    flash.now[:alert] = "Wrong password."
    render :terminate
  end
end

Das problem ist, dass ich kann nicht scheinen zu finden ein Weg, um dies zu testen mit RSpec.

Was ich habe ist dieses:

describe 'DELETE #destroy' do

  before :each do
    @user = FactoryGirl.create(:user)
  end

  context "success" do

    it "deletes the user" do
      expect{ 
        delete :destroy, :id => @user, :password => "password"
      }.to change(User, :count).by(-1)
    end

  end

end

Jedoch das gibt mir eine Fehlermeldung:

ActionView::MissingTemplate:
Missing template users/destroy, application/destroy with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder]}. Searched in:
* "#<RSpec::Rails::ViewRendering::EmptyTemplatePathSetDecorator:0x007fa7f51310d8>"

Kann mir jemand sagen, was ich hier noch fehlt oder schlagen Sie einen besseren Weg, um dies zu testen Aktion?

Vielen Dank für jede Hilfe.

die Fehlermeldung, die Sie bekommen, ist sehr seltsam. BTW, Sie nicht senden Sie die richtigen params
Haben Sie den jeweiligen view-templates?
mit dieser Implementierung, OP muss nicht destroy Vorlage, aber das fehlen dieser Vorlage ist es, was RSpec beschwert.
Wirkt sich eine änderung an der request-line tests, um diese zu löschen :vernichten, :id => @Benutzer.id :Kennwort => "Passwort" einen Unterschied macht?
Sie sind wahrscheinlich Recht. Ich bin immer versucht, um meine Fragen so kurz wie möglich und manchmal bekomme ich die Weg durchgeführt. Tut mir Leid, dass.

InformationsquelleAutor Tintin81 | 2013-11-06

Schreibe einen Kommentar