0

因此,我正在为我的 Shops 购物车操作编写接受功能,并想验证单击该Edit Cart链接是否会将我带到edit_cart_path.

所以我有一个黄瓜步骤定义:

Then(/^I should be on the (.*) page$/) do |page_name|
  current_path.should eq send(page_name.split(/\s+/).push('path').join('_').to_sym)
end

编辑页面 ( cart/123456/edit) 上出现哪些错误,因为No route matches {:action=>"edit", :controller=>"Carts"}我的路线应该是{:action=>"edit", :controller=>"Carts", :id=>123456}

购物车的 ID 在 session[:cart_id] 中,我无法在测试中访问它。

现在的问题是,我如何测试我在编辑页面上是否正确?

4

2 回答 2

0

Cucumber 是为行为驱动开发而设计的,因此测试应该描述您期望看到的行为。我不会检查当前页面的 url 以确保您拥有正确的 id,而是编写测试以查看页面上是否显示正确的内容。

所以,假设你有一个购物车,里面有一些物品,一些类似的东西

Given a cart exists
And I have added "Cucumber and Friends"
When I click the edit link
Then I should see the edit cart page

使用编辑购物车页面检查页面上的内容是否正确

page.should have_selector("h1", text: "Edit Cart")
page.should have_field("edit", with: "Cucumber and Friends")
于 2013-10-17T20:43:06.060 回答
0

我的解决方案是从 URL 中解析 ID,然后将其传递给_path方法以进行验证。

虽然不确定这是否有意义......

于 2013-11-13T11:08:00.610 回答