Как мне проверить действие контроллера Rails, включающего метод из каталога lib /? - PullRequest
0 голосов
/ 27 июля 2011

Мое действие контроллера:

 def single
    final_static_matrix = Single.final_static_matrix(average_static_matrix, params[:priorities])

     ...

  end

В моем lib / single.rb:

module Single
  def self.final_static_matrix(average_static_matrix = {}, priorities = {})
    final_static_matrix = Hash.new

    for i in 0..average_static_matrix.length-1
      final_static_matrix[i.to_s] = average_static_matrix*priorities[i.to_s]
    end

    final_static_matrix
  end
end

В моем controller_spec.rb:

it "should be successful" do
  get :single, :id => 1
  priorities = {"0" => "1"}
  matrix = {"0" => "3"}
  Single.final_static_matrix(matrix, priorities)
  response.should be_success
end

1) Как мне вызвать функцию из каталога lib /? 2) Как будет лучше, если я напишу тесты в файле контроллера или создам что-то вроде single_spec.rb?

Ответы [ 2 ]

1 голос
/ 27 июля 2011

Что бы я сделал: внутри спецификации контроллера я бы проверил, что метод вызывается:

describe "GET :single" do
  it "succeeds" do
    Single.should_receive(:final_static_matrix).and_return('something')

    get :single, :id => 1
  end
end

и внутри spec/lib/single_spec.rb вы проверяете, что final_static_matrix работает как ожидалось.

Вы можете проверить документацию rspec2 здесь .

0 голосов
/ 27 июля 2011

Если вы включили его в свое приложение, оно должно быть доступно вам в ваших тестах.

Для проверки контроллера, проверьте контроллер. Вы можете выполнять модульные тесты для самой библиотеки, если вам это необходимо.

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