0

ご覧のとおり、テーブル.ymlにあるファイルから値をフェッチしようとしています。config/environmentsExamples:

しかし、フェッチする代わりに値をそのまま送信していますか?

このようなパラメータを渡すことは可能ですか? はいの場合、どのように?

そうでない場合、Ruby または Cucumber のどの機能/概念がユーザーにそうするのを差し控えていますか? その理由は?

Feature: Verify login of all test users
I want to verify all test users can login.
  Scenario Outline: Login as different users on the website
    Given I am on login page
    When I enter "<username>" and password
    Then I click Login button
    And I see "<user>" successfully logged in
    Examples:
    |user|username|
    |testuser1|#{FigNewton.test1_email}|
    |testuser2|FigNewton.test2_email|
4

3 に答える 3

1

まず第一に、これはかなり貧弱な機能です。

Scenario: Test Users can login
   Given there are some test users
   When the test users login
   Then all test users should be logged in

またはそのようなもの。機能は、何をどのように行うかではなく、何をなぜ行うかを示すためのものです。

上記を実行すると、すべてのプログラミングがステップ定義で実行されます。これにより、やりたいことが何でもできるようになります。

これは非常に簡単に実装できます。

Given 'there are some test users' do
  @test_users = create_test_users
end

When 'the test users login' do
  @login_results = login_each(@test_users)
end

Then 'all test users should be logged in' do
  expect(check_for_errors(@login_results).count).to eql 0
end

then implement the methods you need in a step helper e.g

module TestUsersLoginStepHelper
  def create_test_users
    ...

  def login_each(users)
    users.each do 
      ...
  ...
end
World TestUsersLoginStepHelper

すべての作業をステップ定義に入れることで、必要なことを実行するために ruby​​ の全機能を使用できるため、作業がはるかに簡単になります。

于 2015-01-22T23:31:53.347 に答える
0

query1 への回答:テーブル を介してパラメーター化できますが、Ruby ファイルではなくファイルであるため、Examples:値を直接渡す ことはできません。FigNewton gem.feature.rb

クエリ2への回答: 方法: ユーザー名でパラメータ化してループしsteps definition、特定のユーザー名が見つかったときに何をすべきかについて言及します。これにより、簡単にパラメータ化できます。

  1. 例:

    |user|username|
    |testuser1|test1|
    |testuser2|test2|
    
  2. ステップ定義

    When(/^I enter "([^"]*)" and password$/) do |username|
    case username
    when 'test1'
      on(LoginPage).user_email = FigNewton.test1_email
    when 'test'
      on(LoginPage).user_email = FigNewton.test2_email
    end
    ....
    ....
    end
    
于 2015-01-22T19:08:29.637 に答える