【问题标题】:What to test and how to test it?测试什么以及如何测试它?
【发布时间】:2012-09-27 17:07:23
【问题描述】:

我想用黄瓜、水豚和 rack_test 编写测试来破坏 ruby​​ on rails 上的对象。

我认为我应该写一个像这样的场景:

When I try to delete X object
Then I should be on the index page for ...
And I should see "Object deleted successfully" 

我不想通过单击索引页面或显示/编辑页面上的链接来测试它,因为我认为我应该测试一些不同于纯粹删除操作的东西。

另外,点击链接表示界面没问题,但是如果有人发送请求删除他不能删除的对象而界面没有显示链接怎么办?

鉴于此,我需要在第一步中发送删除请求,然后检查对该请求的响应。

我在尝试这样做时遇到了麻烦,因为当我以delete url 实现第一步时,当我尝试page.should have_contain(text) 时,我收到错误No response yet. Request a page first. (Rack::Test::Error)

你怎么看?

【问题讨论】:

    标签: ruby-on-rails cucumber capybara rack-test


    【解决方案1】:

    查看how-do-you-post-to-a-url-in-capybara(回答另一个问题),但有几个示例说明如何在水豚测试中使用访问,例如

    visit "item/:id/delete" 
    

    【讨论】:

    • 好吧,这个问题似乎解决了一个问题。虽然在我完成发布请求后,它工作得很好,但我想检查我是否被重定向到正确的路径。问题是在发布请求之后,变量last_request.url 具有重定向页面的url,但current_url 没有,并且检查url 的步骤使用current_url 而不是last_request.url。最糟糕的是,如果我将其更改为 last_request.url,我会得到 undefined method url' 的 #<:mockresponse:0x00000006619788> (NoMethodError)`。
    猜你喜欢
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-24
    • 1970-01-01
    • 2016-01-12
    • 1970-01-01
    相关资源
    最近更新 更多