Je teste les fonctionnalités et besoin d'appeler une méthode à partir de ApplicationController, Comment appeler une méthode gta_data
dans le test?Je teste les fonctionnalités et ai besoin d'appeler une méthode depuis ApplicationController, comment puis-je faire cela?
def gtm_data(data_hash = nil)
@gtm_data ||= {}
if @dynamic_page
gaPageUid = 'category-' + @dynamic_page.uid
else
gaPageUid = 'other'
end
@gtm_data = {
gaLocale: @locale, gaLanguage: @lang,
gaRegion: current_site.region, gaPageUid: gaPageUid
}
@gtm_data
end
Spec/caractéristiques/application_page.rb
describe 'Application Page' do
before :each do
@application_page = FactoryGirl.create(:application_page, meta_title: 'catched!')
end
describe 'gaming layout' do
before :each do
@product = Presenters::Product.new(FactoryGirl.create(:product))
@page_url = "http://de-de.test.de/application_pages/#{@application_page.id}"
end
it 'ignores the serie version if have not sufficient data' do
visit @page_url
expect(page).to have_content @product.name
end
end
end
Je comprends, mais il y a un problème. Vérification de 'expect (page) .to have_content @ product.name' J'ai un échec de test. J'ai découvert cela à cause de la méthode 'gtm_data'. –
Dans ce cas, vous voulez savoir exactement comment 'gtm_data' affecte votre test. Et puis découvrez cette logique correcte dans votre cas d'utilisation ou non. Si c'est le cas, le test devrait échouer. Si non, vous devez changer votre logique. Le point clé est toujours: dans les spécifications des fonctionnalités, vous devez tester le comportement des utilisateurs et la manière dont votre application réagit. – VAD