3

たとえば、現在のアプリケーションのキュウリ機能を一人称で記述しようとしています。

Given I am logged in as a user
And Mark is a user
When I send him a friend request
Then he should have a friend request from me
And he should receive an email

「彼」、「彼」、「私」で適切なユーザーを参照していることを確認するための手順を適切に書くのに苦労しています。

私は扱うことができます:

When I send Mark a friend request

以下を使用して:

When /^I send (.+) a friend request$/ do |user|
  @user = User.find_by_email(user.downcase + "@test.org")
  visit '/users/' + @user.id.to_s
  click_button "Add Friend"
end

しかし、むしろ「彼」または「彼」を使用することができます.

「(.+) はユーザーです」というステップで @second_user またはその他の変数を実際に割り当てる必要があることを達成することを考えています。

あれは正しいですか?

これに関するアドバイスは大歓迎です!

4

2 に答える 2

2

正直なところ、これは価値がある以上に面倒なことになると思います。ここに座って解決策を考えていると、将来のシナリオでこれらのステップ定義を再利用する場合、または将来の読者の精神的負担でさえ、最終的に負担にならないものは何も思いつきません実行の流れを理解しようとしています。

私は代名詞よりも、すべてのステップで名前を使用することの明示性を実際に好みます。私の経験では、特にエンティティ間の相互作用がより複雑になった場合、実際には、「彼」と「私」または「ユーザー 1」と「ユーザー 2」の代わりに「アリス」と「ボブ」を参照することが非常に役立ちます。ハプニング。

于 2012-12-10T03:41:20.620 に答える
0

2番目のステップでマークをキャッチする必要があります。

And Mark is a user

このステップを確認する必要があります。つまり、マークが存在する必要があります。次に、3番目のステップで彼を紹介できます。

機能はどうですか:

Given I am logged in as a user
And A user exists with name "Mark"
When I send him a friend request

その後、user_steps.rb

Given /^I am logged in as a user$/ do
    pending #blah blah
end

Given /^A user exists with name "([^"]+)"$/ |username| do
    @user = User.find_by_email(username.downcase + "@test.org")
    @user.should be_true
end

When /^I send (\w+) a friend request$/ do |user|
    user = @user
    # visit blah blah
end
于 2012-12-09T17:52:26.990 に答える