2012-09-17 93 views
0

存在表單字段我有用戶(的form_for @user)簡單的形式註冊與密碼字段:檢查是否有have_field

<div class="control-group"> 
    <%= f.label :password, :class => 'control-label' %> 
    <div class="controls"> 
    <%= f.password_field :password, :class => 'password_field' %> 
    </div> 
</div> 

在我的RSpec /水豚測試我要檢查,如果這個密碼字段存在 我嘗試:

it {should have_field("password")} 

但它不起作用。 與「user_password」(因爲這是密碼字段ID)或「user [password]」(這是該字段名稱)相同

不確定是否使用正確的匹配器,因爲capybara文檔沒有解釋它是什麼。測試表單域是否存在的最好方法是什麼?

+0

我發現它沒有工作,因爲我應該使用它:{page.should have_field(「password」)。但我不明白爲什麼我設置了主題{page}並訪問new_user_path。 –

回答

0

嘗試用have_selector代替have_field

2

您的代碼沒有工作,因爲代替:

it { page.should have_field("password") }

,你應該使用

specify { page.should have_field("password") }

it { should have_field("password") }

1

這裏, in reply to myself我已經解決了這個問題,在規範中明確使用:type =>:password。