Тестирование блога Ruby on Rails (выпуск NetBeans) - PullRequest
0 голосов
/ 23 июня 2009

Я недавно начал изучать ruby ​​на рельсах. Я завершил обзор блога (ссылки ниже) и хочу сделать тесты для него. Я взял это функциональное тестирование из видео версии демонстрации блога. Теперь я хочу, чтобы это тестирование работало для издания netbeans, которое на самом деле структурировано по-разному с точки зрения того, как комментарии относятся к публикации. Из того, что я собрал, в версии NetBeans все представления комментариев выполняются через представления сообщений. Теперь этот метод испытаний необходимо изменить, чтобы приспособиться к этому. Как бы я создал объект сообщения с комментарием? Я не знаю, как объекты работают в Ruby. Как то, как создать экземпляр и тому подобное.

  test "should create comment and redirect to post without javascript" do
 p= Post.create!(:title => 'hello',:body => 'world')
 post :create, :post_id => p.id, :comment => {:body =>'nice!'}
 assert_redirected_to post_url(p)
 assert_equal 'nice!',p.comments.first.body
end

1 Ответ

1 голос
/ 27 июня 2009

Из того, что я понял, вы пытаетесь подражать пользователю, оставляющему комментарий к существующему посту. Что вы можете сделать, это запустить проект, открыть веб-страницу, перейти к сообщению и создать комментарий. Затем проверьте файл журнала сервера и найдите ту часть, которая была вызвана тем, что вы оставили этот комментарий. Там вы увидите что-то вроде этого:

Processing PostsController#create (for 127.0.0.1 at 2009-06-27 16:54:18) [POST]
Session ID: 17134c01441c1e26e17baeee4681dd3b
Parameters: {"action"=>"create", "controller"=>"posts", "comment"=> {"foo" => "bar"}}

Затем просто подражайте этому в своем тесте, написав что-то вроде:

post :create, :comment => {:foo => "bar"}

И это должно создать новый комментарий к сообщению.

Тем не менее, вы должны сделать это следующим образом ТОЛЬКО ПРИ ОБУЧЕНИИ! Как только вы освоитесь, напишите тесты до этого, обрисуйте, как все это должно работать, а затем работайте на реализацию, пока он не делает.

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