Как я устанавливаю HTTP_REFERER при тестировании в направляющих?

Мы также можем создать PLYReader в качестве PCDReader, как показано ниже, чтобы прочитать файл PLY и все точки в нужное облако

#include<pcl/io/ply_io.h>

pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ);
pcl::PLYReader Reader;
Reader.read("Path of the PLY file", *cloud);
87
задан Ethan 12 February 2009 в 19:55
поделиться

3 ответа

Их рекомендация переводит в следующее:

setup do
  @request.env['HTTP_REFERER'] = 'http://test.com/sessions/new'
  post :create, { :user => { :email => 'invalid@abc' } }
end
90
ответ дан James A. Rosen 5 November 2019 в 15:29
поделиться
setup do
  @request.env['HTTP_REFERER'] = 'http://test.com/sessions/new'
  post :create, { :user => { :email => 'invalid@abc' } }
end

В Rails 2.2.2 вышеуказанный блок никогда не выполнял фактический тест. Говоря, что

post: create, {: user => {: email => ' invalid @ abc '}}

строка не запускалась. Вы можете просто избавиться от блока настройки и использовать вместо него

@request.env['HTTP_REFERER'] = 'http://test.com/sessions/new'
post :create, { :user => { :email => 'invalid@abc' } }

. И он должен установить реферер

0
ответ дан 24 November 2019 в 07:49
поделиться

В ответ на вопрос:

Почему это не работает:

setup { post :create, { :user => { :email => 'invalid@abc' } }, 
{ 'referer' => '/sessions/new' } }

Это не работает, потому что документ по Rails, на который вы ссылались, документирует другой класс, чем тот, который вы, вероятно, используете.

Вы сослались на ActionController::Integration:Session. Я предполагаю, что вы пишете функциональный тест (если вы используете Test::Unit) или тест контроллера (если вы используете Rspec). В любом случае, вы, вероятно, используете ActionController::TestCase или его подкласс. Который, в свою очередь, включает модуль ActionController::TestProcess.

ActionController::TestProcess предоставляет get метод с другими параметрами, чем get метод, предоставляемый ActionController::Integration:Session. (Раздражает, да?) Сигнатура метода выглядит так:

 def get(action, parameters = nil, session = nil, flash = nil)

К сожалению, параметр headers отсутствует. Но, по крайней мере, установка @request.env['HTTP_REFERER'] работает.

9
ответ дан 24 November 2019 в 07:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: