Rails: лучший способ проверить действие, вызываемое удаленно? - PullRequest
1 голос
/ 19 июля 2010

Я снова пробовал Rails, на этот раз версию 3, но застрял при написании тестов для действия, которое я вызываю только удаленно.

Конкретный пример:

Контроллер

class PeopleController < ApplicationController
  def index
    @person = Person.new
  end
  def create
    @person = Person.new(params[:person])
    @person.save
  end
end

Просмотр (index.html.erb)

<div id="subscription">
  <%= form_for(@person, :url => { :action => "create" }, :remote => true) do |f| %>
    <%= f.text_field :email %>
    <%= f.submit "Subscribe" %>
  <% end %>
</div>

Просмотр (create.js.erb)

<% if @person.errors.full_messages.empty? %>
  $("#subscription").prepend('<p class="notice confirmation">Thanks for your subscription =)</p>');
<% else %>
  $("#subscription").prepend('<p class="notice error"><%= @person.errors.full_messages.last %></p>');
<% end %>

Как я могу проверить эту удаленную отправку формы? Я просто хотел бы узнать, правильно ли представлены уведомления. Но если я попытаюсь сделать просто

test "create adds a new person" do
  assert_difference 'Person.count' do
    post :create, :people => {:email => 'test@test.com'}
  end
  assert_response :success
end

Будет сказано, что в действии "создать" отсутствует шаблон.

Как вы, ребята, обычно тестируете удаленные вызовы?

1 Ответ

1 голос
/ 19 июля 2010

Не могли бы вы просто использовать функцию «xhr» вместо функции «post»?Пример можно найти по адресу http://weblogs.java.net/blog/2008/01/04/testing-rails-applications,, если вы ищете «xhr».Но даже тогда, мне любопытно, даже с удаленным вызовом, вам не нужно возвращать что-то?Даже просто нормальный заголовок?

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