5

私が達成すべきことは、current_userCucumber のステップを定義する際にメソッドを使用 (依存) することです。プロジェクトで Clearance を使用しています。

まず最初に使ってみましsign_inたがうまくいきませんでした (Cucumber World は Clearance メソッドについて知らないと思います...)。

では、Cuckes にcurrent_userand sign_in/sign_outメソッドを認識させるにはどうすればよいでしょうか。

4

2 に答える 2

6

Cucumber の機能は、パブリック ユーザー インターフェイスを介してアプリケーションを駆動する必要があります。何かのようなもの:

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

メソッドはブラウザで使用できないためcurrent_user、仕様で使用しないでください。

@current_user上記の手順で保存し、属性リーダーを提供することで、手順でそれを偽造できます。

于 2010-12-31T04:05:59.933 に答える
1

すべての受け入れテスト (キュウリまたはその他) でログイン ロジックを実行する必要があるという考えには同意しません。幸いなことに、同意する場合、クリアランスはテストでバックドアを追加し、サインイン手順をスキップできるようにしました.

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

これで、ユーザーが行うようにログイン UI を駆動するログイン関連の機能をそのままにして、ログインに直接関連しない機能についてはそれをスキップできます。

于 2013-12-06T02:32:55.210 に答える