【问题标题】:Using Cucumber to test controller without a view in Rails在 Rails 中使用 Cucumber 在没有视图的情况下测试控制器
【发布时间】:2011-09-08 20:40:44
【问题描述】:

我是 ruby​​/rails 新手,我正在开发的应用程序从另一个网站的 HTTP 帖子开始,该帖子传入一些数据,然后在调用 Web 服务之前显示一些数据捕获屏幕。

我想使用 Cucumber 进行集成测试和 rspec 进行功能/单元测试的外部方法开始这个项目。

使用 Cucumber 如何模拟来自外部网站的帖子,以便我可以使用应用程序测试流程。

【问题讨论】:

    标签: ruby ruby-on-rails-3 cucumber


    【解决方案1】:

    调用发起的应用程序并不重要;仅提供的参数与引用页面中的预期参数匹配。如果您依赖于设置的特定 HTTP_REFERER,请查看this answer,了解如何在 Cucumber 中设置标头。

    add_headers({'HTTP_REFERER' => 'http://referringsite.com'})
    

    由于您已经知道您的应用期望从引用站点获得哪些查询参数/标头,您可以创建一个设置块,为每个 cuke 适当地设置这些参数/标头。

    【讨论】:

    • 对不起,要么我完全迷路了,要么我没有正确地回答我的问题。我要做的是从 capybara 发布请求。我不能简单地导航到视图并填写并发布表单,因为没有视图。
    【解决方案2】:

    如果您将 Cucumber 与 Capybara 一起使用,您可以像这样进行 HTTP POST。

    When /^I sign in$/ do
      @user = Factory(:user)
      get "/login"
      page.driver.post sessions_path, :username => @user.username, :password =>   @user.password
    end
    

    或者,如果你有一个视图,它会是这样的。

    When /^I sign in$/ do
      @user = Factory(:user)
      visit "/login"
      fill_in "Username", :with => @user.username
      fill_in "Password", :with => @user.password
      click_button "Log in"
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-22
      • 2011-07-25
      • 2013-08-28
      • 1970-01-01
      • 2011-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多