使用Cucumber在Rails中没有视图的情况下测试控制器

时间:2011-09-08 20:40:44

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

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

我想使用Cucumber进行集成测试和使用rspec进行功能/单元测试时使用外部方法启动此项目。

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

2 个答案:

答案 0 :(得分:1)

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

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

由于您已经知道应用程序希望从引用网站获得哪些查询参数/标题,因此您可以创建一个设置块,为每个cuke设置适当的设置。

答案 1 :(得分:0)

如果您使用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