Как это проверить ==> rspec + rails - PullRequest
       1

Как это проверить ==> rspec + rails

0 голосов
/ 27 сентября 2010

Мы все знаем, что у нас есть этот код в нашем действии создания любого базового контроллера

def create
    if @product.save
      flash[:notice] = 'Product was successfully created.' 
      redirect_to(products_path)
    else
      flash[:notice] = "Data not saved try again"
      render :action => "new"
    end
end

как мы проверяем эту часть кода, используя rspec

Любые предложения приветствуются.

PS Я наивный в rspec, поэтому, пожалуйста, не стесняйтесь задавать мне этот вопрос, если ответ на него чертовски прост:)

1 Ответ

2 голосов
/ 27 сентября 2010

Драгоценный камень замечательных рельсов добавляет в rspec некоторые сопоставления, которые можно использовать для проверки уведомлений, перенаправлений и т. Д.Этот (непроверенный) product_controller_spec.rb показывает, как вы можете использовать сопоставители замечательные_рейлы для проверки своего фрагмента кода:

describe ProductController do

  describe "create" do

    before(:each) do
      @product = products(:window_cleaner)
    end

    it "should create a product" do
      @product.should_receive(:save).and_return(true)
      post :create
      should set_the_flash :notice,
                           :to => 'Production was successfully created.'
      should redirect_to products_path
    end

    it "should handle failure to create a product" do
      @product.should_receive(:save).and_return(false)
      post :create
      should set_the_flash :notice, :to => 'Data not saved try again.'
      should render_template :action => 'new'
    end

  end

end

Remarkable-rails при условии, что использованные выше сопоставления render_template, set_the_flash и redirect_to соответствовали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...