0

テストを書き、失敗させてから、合格するコードを書きます。簡単です...コードの代わりにgemを使用することを決定するまで。たとえば、工夫する。

どの統合 (別名、要求または機能) 仕様を作成する必要があるのか​​ 、本当にわかりません。

何も書かない場合は、ブラウザーを開いて、gem とアプリケーションの統合が適切かどうかを確認する必要がありますが、これは悪いことです (cfr. Ryan Bates を参照)。また、誤って機能を壊す可能性があります。

反対側では、他のコードをテストするのは正しくなく、役に立ちません。

正しいバランスとは?Devise を追加するときに BDD (RSpec を使用) を行うにはどうすればよいですか?

Devise を使用する際の認可のテストとして何を書くかの具体例を教えていただければ幸いです。

アプリケーション内に独自の Devise ビューがある場合、同じ質問にどのように答えますか?

4

2 に答える 2

2

これは、Capybara と Rspec を使用して確実に実現できます。

ここの指示に従ってカピバラをインストールしますhttps://github.com/jnicklas/capybara#using-capybara-with-rspec - ヒント、指定するディレクトリに名前を付けてくださいfeatures

次に、カピバラを使用してアプリケーションをテストします

したがって、サインアップをテストするには、この例が機能するはずです。明らかに、アプリケーションに基づいてパラメーターとルートを調整する必要があります。

require 'spec_helper'

feature 'Signing up' do
  scenario 'creates a new user' do
    visit '/users/sign_up'
    password = 'samplepassword'
    fill_in 'First name', with: 'Testy'
    fill_in 'Last name', with: 'McTester'
    fill_in 'Email', with: 'testy@example.com'
    fill_in 'Password', with: password
    fill_in 'Password confirmation', with: password
    click_link 'Sign up'
    expect(page).to have_content 'You have signed up successfully'
  end
end

Devise には、アプリの他の領域をテストするときに使用できるテスト ヘルパーもありますhttps://github.com/plataformatec/devise#test-helpers

これらは、さまざまなページに設定した制限が正しいことを確認するのに特に役立ちます。ユーザーがサインインしている場合や間違った役割を持っている場合などに何が起こるかをテストすることで、この動作をテストできます。

于 2013-09-30T01:22:21.093 に答える