Запись спецификации для помощника с Ruby on Rails и RSpec

Я писал спецификации для контроллеров и моделей, но я никогда не писал спецификацию помощника. Я понятия не имею, где я запускаю.

У меня есть следующий отрывок в application_helper.rb

  def title(page_title)
    content_for(:title) { page_title }
  end
  • Как я должен записать спецификацию помощника на коде?
  • Также, если существует какое-либо приложение для направляющих с открытым исходным кодом, чтобы показать хорошему помощнику testing/specing, действительно сообщить мне.
23
задан TK. 3 January 2010 в 23:24
поделиться

1 ответ

RSpec должен автоматически загружать классы и модули из вашего рельсового окружения, когда вы их "описываете", так что действительной спецификацией помощника может быть:

#deleted

Но помните, что bdd тестирует не каждый отдельный метод, а поведение вашего приложения.

редактирование:

как сказал @Ken, мой spec не был правильным, это был определенно неправильный способ сделать это. Поэтому я вышел с решением Request spec, которое мне нравится больше, чем Helper spec.

# inside your helper
def title=(page_title)
  content_for(:title) { page_title }
end

# views/resource/index.html.erb
<% title = "foo" %>

# views/layouts/application.html.erb
<%= yield :title %>

# request spec
require 'spec_helper'

describe YourResource do
  it "should output content for title"
    get "/resource"
    response.body.should =~ /<title>foo<\/title>/
  end
end

иначе, если вы хотите проверить только поведение помощника (потому что это критично или потому что у вас нет никаких взглядов) @Ken'овское решение лучше.

7
ответ дан 29 November 2019 в 01:45
поделиться
Другие вопросы по тегам:

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