3

Cucumber と Capybara でリストのソートをテストする方法はありますか? 並べ替えは、javascript を使用してクライアント側で行われます。

私は次のようなことを考えていました:

Then I should see "first element" and then I should see "second element"

残念ながら、階段を構築する方法がわかりません。

助けてくれてありがとう!

4

1 に答える 1

7

テストしているストーリー(平易な英語に近づけたい)とテストの実際の実装(step_definitionsに隠されている)を分離することをお勧めします。

テストする内容に応じて、これに取り組む方法はいくつかあります。最初のケースでは、cukeテストは非常に読みやすく、ステップ定義を正しく実装することになります。

Given that I am on page xyz
And I have a list
Then I should see the list in sorted order

この場合、リストを持つことの意味を定義する必要があり(必要に応じて、ステップ定義で@listに割り当てることができます)、次に、ソートされた順序でリストを表示することの意味を定義する必要があります(ここで渡すことができます)アイテム2の前にアイテム1が表示されることを保証する正規表現など)

または、cukeテストでより詳細になりたい場合は、次のようにすることができます。

Given that I am on page xyz
Then I should see /item1.*item2.*item3/

これは、リストがすでに入力されていることを前提としています。

withinリストの場所によっては、スコープパラメータを使用する必要がある場合があります。

キュウリは機能テストと統合テストには最適ですが、(すべてのエッジケースを見ると)単体テストにはおそらく適切なツールではないことを忘れないでください。単体テストレベルで並べ替えをテストするには、QUnitを使用することを強くお勧めします。QUnitテストは静的ページであるため、capybaraの一部としてテストを実行するために次のトリックを試してください。

Given I am on "/test/path/to/qunit/tests"
Then I should see "Whatever Title You have Assigned"
And I should see "0" within "//p[@id='qunit-testresult']/span/[@class='failed']"
于 2010-12-10T23:24:09.303 に答える