assert_redirected_to в Rails Testing - PullRequest
       4

assert_redirected_to в Rails Testing

2 голосов
/ 14 апреля 2011

Я пытаюсь запустить несколько тестов на моем контроллере Customers. Когда я вручную тестирую контроллер, все работает нормально, однако, когда я пишу на нем интеграционные тесты, я получаю сообщение об ошибке. Вот мой тестовый код:

context "non-empty Customer model" do
  setup do
    @customer = Customer.first || Customer.create(:name => "John", :address => "123 Street Cool", :telephone => "01484349361", :email => "johnsmith@world.com")
  end

  should "be able to create" do
    get "/customers/new"
    assert_response :success
    post "/customers/create", :post => @customer
    # assert_response :success
    assert_redirected_to "/customers/list"
  end

И ошибка, которую я получаю, находится в строке assert_redirected_to и говорит:

Ожидаемый блок для возврата истинного значения.

Вот мой код контроллера для новых / создания действий:

  def new
    @customer = Customer.new

    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @customer }
    end
  end

  def create
    # Instantiate a new object using form params
    @customer = Customer.new(params[:customer])
    # Save the object
    if @customer.save
      # If save succeeds, redirect to the list action
      flash[:notice] = "Customer created."
      redirect_to(:action => 'list')
    else
      # If save fails, redisplay the form so user can fix problems
      render('new')
    end
  end

Я был бы очень признателен за любую помощь в получении тестов.

Спасибо.

1 Ответ

3 голосов
/ 23 апреля 2011

Похоже, вы отправляете неверную информацию в качестве параметров.

should "be able to create" do
  get "/customers/new"
  assert_response :success
  post "/customers/create", :customer => @customer.attributes
  assert_redirected_to "/customers/list"
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...