Я писал спецификации для контроллеров и моделей, но я никогда не писал спецификацию помощника. Я понятия не имею, где я запускаю.
У меня есть следующий отрывок в application_helper.rb
def title(page_title)
content_for(:title) { page_title }
end
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'овское решение лучше.