5

Ne yapacağım, Salatalık basamaklarını tanımlarken current_user yöntemini kullanmaktır (güvenmek). Projemde Gümrükleme kullanıyorum.Salatalık ve Gümrükleme: current_user adımda

Her şeyden önce sign_in'u kullanmayı denedim ama işe yaramadı (Sanırım Cucumber World, temizleme yöntemleri hakkında bilgi sahibi değil ...).

Cuckes, current_user ve sign_in/sign_out yöntemlerini nasıl tanıyabilir?

cevap

6

Salatalık özellikleriniz uygulamanızı herkese açık kullanıcı arabirimi üzerinden sürüyor olmalıdır. gibi bir şey: current_user yöntemle yana

Given /^I am signed in as "([^\"]*)"%/ do |username| 
    visit 'sign_in' 
    fill_in 'Username', :with => username 
    click 'Sign In' 
end 

tarayıcıya kullanılamaz, kendi spec kullanmadan olmamalıdır.

Yapabilirsin yukarıdaki adımda @current_user depolanması ve daha sonra bunun için bir özellik okuyucu sağlayarak adımlarda sahte.

+0

9 ay sonra ben cucke nasıl fark O doğru. Şimdi cevabınızın neden bir günde doğru olduğunu anlayın. – gmile

+0

Yine de sinir bozucu. Çünkü "current_user", sunucu tarafında değil, sadece tarayıcı tarafında bile "nil". –

1

Her kabul testinin (salatalık ya da başka bir şekilde) giriş mantığını kullanması gerektiği fikrine katılmıyorum. Neyse ki, eğer katılıyorsanız, Clearance, oturum açma adımlarını atlamanızı sağlayan testlere back door ekledi.

user = create(:user) 
visit posts_path(as: user) 

Artık bir kullanıcı olarak giriş ui sürüş için girişle ilgili özellikler bırakmak olur ve doğrudan giriş yapma alakalı olmayan özellikler için bu atlayabilirsiniz.

+0

Çok teşekkür ederim! – kwerle

İlgili konular