Как Вы тестируете метод контроллера направляющих, выставленный как helper_method?

Они, кажется, не доступны от ActionView:: TestCase

19
задан shingara 15 March 2010 в 15:09
поделиться

2 ответа

Верно, вспомогательные методы не отображаются в тестах представления - но они могут быть протестированы в ваших функциональных тестах. А поскольку они определены в контроллере, это подходящее место для их тестирования. Ваш вспомогательный метод, вероятно, определен как private , поэтому вам придется использовать метапрограммирование Ruby для вызова метода.

app / controllers / posts_controller.rb:

class PostsController < ApplicationController

  private

  def format_something
    "abc"
  end
  helper_method :format_something
end

test /function / posts_controller_test.rb:

require 'test_helper'

class PostsControllerTest < ActionController::TestCase
  test "the format_something helper returns 'abc'" do
    assert_equal 'abc', @controller.send(:format_something)
  end
end
34
ответ дан 30 November 2019 в 03:20
поделиться

На самом деле это не так. Тесты просмотра предназначены специально для представлений. Они не загружают контроллеры.
Вы должны издеваться над этим методом и заставить его возвращать все, что вам подходит, в зависимости от вашего контекста.

0
ответ дан 30 November 2019 в 03:20
поделиться
Другие вопросы по тегам:

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