使用Cucumber + Guard + Spork进行集成测试:我可以访问我的REST入口点吗?

时间:2012-02-22 10:32:39

标签: ruby-on-rails cucumber integration-testing spork guard

我可以通过 rails s 手动测试我的API,并将我的HTTP客户端指向http://127.0.0.1:3000/api

现在,我想通过功能自动测试我的API。所以我成功建立了一个启动黄瓜和rspec的保护服务器。

黄瓜启动我的应用程序并在任何端口下提供我的API入口点吗?这样我就可以在我的步骤定义中使用HTTP客户端,并将其指向http://127.0.0.1:8989/api,例如?

我知道我可以指定一个:cucumber_port =>保护文件中的4321但我的API在此端口下不可用。

1 个答案:

答案 0 :(得分:1)

不,Cucumber不会使用服务器启动您的应用程序。

要测试它,您可以执行以下操作:

  1. 使用rack_test。它为您提供了#get#post等方法。这是首选。例如:
  2. get('api/test')
    response.code.should == '200'
    
    1. 使用Capybara启动服务器。然而,它会长得多。您可以通过将以下代码添加到env.rb
    2. 来执行此操作
      require 'capybara/rails'
      Capybara::Server.new(Capybara.app).boot
      

      现在,您可以在http://127.0.0.1:9887/api

      访问您的API