Je me demande si @admin.save renvoie true. En tout as je vois pas
pourquoi ce serait le cas.
Voici quelques pistes:

  admin = double("admin")
  admin.stub(:save).and_return(true)
  Admin.should_receive(:new).and_return(admin)

On Oct 12, 10:46 am, Alexandre Friquet <[email protected]> wrote:
> Salut,
>
> Je rencontre un souci pour le test d'un des contrôleurs de mon appli
> (Rails 3.1, RSpec 2) :
>
> [test]
> context "when the admin saves successfully" do
>  before do
>    admin.stub(:save).and_return(true)
>    post :create, :admin => {}
>  end
>
>  context "and the tool cannot connect to the mail server" do
>    before { Notifications.stub_chain(:welcome_admin,
> :deliver).and_raise(Errno::ECONNREFUSED) }
>
>    it "sets an alert message" do
>      pending "Error seems not to be raised :(" do
>        flash[:alert].should_not be_empty
>      end
>    end
>  end
> end
> [/test]
>
> Le test ne passe pas parce que flash[:alert] = nil et donc l'exception
> ne semble pas levée.
> Ci-dessous le code concerné du contrôleur :
>
> [code]
> class AdminsController < ApplicationController
>  def create
>    @admin = Admin.new(params[:admin])
>    if @admin.save
>      begin
>        Notifications.welcome_admin(@admin).deliver
>      rescue Errno::ECONNREFUSED => e
>        logger.error { "[ERROR][MAILER] #{e.inspect}" }
>        flash[:alert] = 'flash.mailer.unknown'
>      ensure
>        redirect_to @admin, :notice => 'flash.actions.create.notice'
>      end
>    else
>      render :new
>    end
>  end
> end
> [/code]
>
> Si l'un d'entre vous a une idée ;)
> Je suis bien évidemment preneur de toute remarque si quelque chose
> vous choque dans ce code.
>
> --
> Alex

-- 
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]

Répondre à