0

アイテムを編集するための統合テストを作成するにはどうすればよいですか? 私の「作成」テストは次のようになります。

  it "lets a user create a product" do
    login_user
    click_link("Products")
    click_link("New")
    fill_in "Identifier", :with => "MyString"
    click_button "Create"
    assert page.has_content?("Product was successfully created")
  end

そして、それはうまく機能します。私が混乱しているのは、Edit および Destroy テストの実行方法です。私のインデックス ページには、すべての製品のリストが表示されます。まず、ファクトリーを使用していくつかの製品を作成します。現在、「編集」と「破棄」ボタンが複数ある状況です。私はただ言うことはできません:

click_button "Destroy"

二人いるから。どちらをクリックするかをどのように伝えるのですか?

そして、正しい「破棄」ボタンがクリックされた場合、ポップアップするJavascriptウィンドウで「OK」ボタンを押すにはどうすればよいですか?

4

1 に答える 1

1

Webratを使用していると仮定すると、「within」セレクターを使用できます。

Webratの「within」メソッドはCSSセレクターを引数として取ります。「破棄」ボタンが「#product-2」のようなIDを持つdivにあるとすると、そのボタンを次のように分離できます。

within "#product-2" do |scope|
  scope.click_button "Destroy"
end

XPathを使用する必要がある/使用したい場合は、次のようにすることができます。

 response.should have_xpath(xpath) do |button|
   click_button(button)
 end

または、カピバラを使用している場合は、「検索」メソッドを使用できます。

find("#product-2").find("button").click
find(:xpath, "//div/div/button").click
于 2012-06-04T23:02:07.927 に答える