2015-07-21 48 views
0

我最近更新了來自靜態文本的頁面標題以從我的應用程序頁面呈現動態變量。例如:使用RSpec測試動態頁面標題

靜態:

<% title "Job" %> 

動態:

<% title "Job in #{@job.address.state}" %> 

我的老RSpec的測試是非常簡單的:

it 'can see jobs page' do 
    expect(page).to have_title('Job') 
end 

我的頁面標題助手看起來是這樣的:

# Page title helper 
def title(page_title) 
    content_for (:title) { page_title } 
end 

def yield_or_default(section, default = "") 
    content_for?(section) ? content_for(section) : default 
end 

用RSpec測試我的動態頁面標題的最佳方法是什麼?我試圖使用包含的匹配器來測試頁面標題字符串包含Jobs in,但無法使其工作。

+0

在你的rspec中,你創建了一個'job'和'address'對象嗎?那麼,爲什麼你不能'expect(page).to have_title(「#job.address.state}」中的作業)? – forthowin

回答

0

我會硬編碼您的期望。這樣,您就不會測試您以同樣的方式編寫相同方法鏈兩次的能力,您正在測試用戶將看到的實際打印在頁面上的內容。

it 'can see jobs page' do 
    expect(page).to have_title('Job in Alaska') 
end 

如果由於某種原因你沒有正確調用方法,這個測試將會中斷,你就會知道需要修復的東西。如果這似乎很難做到,請記住您可以使用Factory或將測試內的地址狀態設置爲您需要的任何地方。