Тестирование Представления RSpec: Как изменить параметрические усилители?

Одна из лучших вещей, которые можно сделать при разработке с Visual Studio для Моно, состоит в том, чтобы получить MoMA http://www.mono-project.com/MoMA. Это осмотрит любое количество блоков, что Вы создаете и генерируете отчет, показывающий потенциальные Моно проблемы (например, методы, не реализованные в моно библиотеке). Это может быть выполнено от GUI или командной строки для использования в автоматизированных сборках.

11
задан sebastiangeiger 26 November 2009 в 10:03
поделиться

2 ответа

Это потому, что вы не должны использовать params в своих представлениях.
На мой взгляд, лучший способ использования помощника.

<div>Sorted by <%= sorted_by %></div>

И в одном из ваших вспомогательных файлов

def sorted_by
    params[:sorted_by].capitalize
end

Затем вы можете довольно легко протестировать своих помощников (потому что в тестах помощников вы можете определить запрос params .

11
ответ дан 3 December 2019 в 00:54
поделиться

Если это тест контроллера, то это будет

controller.stub!(:params).and_return {}

Если это вспомогательный тест, то это будет:

helper.stub!(:params).and_return {}

И это тест просмотра, это будет:

view.stub!(:params).and_return {}

Если вы получите предупреждение, как показано ниже.

Deprecation Warnings:

Using `stub` from rspec-mocks' old `:should` syntax without explicitly enabling the syntax is deprecated. Use the new `:expect` syntax or explicitly enable `:should` instead. Called from /home/akbarbin/Documents/Office/projects/portfolio/spec/views/admin/waste_places/new.html.erb_spec.rb:7:in `block (2 levels) in <top (required)>'.


If you need more of the backtrace for any of these deprecations to
identify where to make the necessary changes, you can configure
`config.raise_errors_for_deprecations!`, and it will turn the
deprecation warnings into errors, giving you the full backtrace.

1 deprecation warning total

Finished in 4.86 seconds (files took 4.72 seconds to load)

Вы можете изменить его на

allow(view).to receive(:params).and_return({sort_by: 'name'})
35
ответ дан 3 December 2019 в 00:54
поделиться
Другие вопросы по тегам:

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