Rails rspec还没有回复。首先请求页面

时间:2013-11-22 09:06:27

标签: ruby-on-rails rspec

我正在运行一个rspec,脚本是这样的:

require 'spec_helper'

describe Stb do

    let(:app) { Stb.new }

    before do
        @stb = FactoryGirl.create(:stb)
    end

    subject { @stb }

    describe ".login" do
        it "ok" do
            RestClient.get "http://www.example.com"
            last_response.should be_ok
        end
    end
end

但事实证明:

 1) Stb.login ok
 Failure/Error: last_response.should ok
 Rack::Test::Error:
   No response yet. Request a page first.

当我在 irb 中运行RestClient.get "http://www.example.com"时,它可以返回一些有效的内容。 有人可以帮助我解决它的错误,或者last_response

有什么特别之处

我的* spec_helper.rb *是:

# This file is copied to spec/ when you run 'rails generate rspec:install'
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec'
require 'rspec/rails'
require 'rspec/autorun'
require 'rack/test'
require 'em-rspec'

# Requires supporting ruby files with custom matchers and macros, etc,
# in spec/support/ and its subdirectories.
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}

RSpec.configure do |config|
  # ## Mock Framework
  #
  # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
  #
  # config.mock_with :mocha
  # config.mock_with :flexmock
  # config.mock_with :rr
  config.mock_with :rspec
  # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
  config.fixture_path = "#{::Rails.root}/spec/fixtures"
  #config.before(:each, type: :controller) { @routes = Api::Engine.routes }
  # config.before(:each, type: :routing)    { @routes = Api::V4::Server.routes }

  #config.fixture_path = "#{::Rails.root}/spec/fixtures"
  #config.before(:each, type: :controller) { @routes = Api::Engine.routes }
  config.before(:each, type: :routing)    { @routes = Api::Engine.routes }
  # make rspec stop operation immediately after failed
  config.fail_fast = true

  # If you're not using ActiveRecord, or you'd prefer not to run each of your
  # examples within a transaction, remove the following line or assign false
  # instead of true.
  config.use_transactional_fixtures = true

  # If true, the base class of anonymous controllers will be inferred
  # automatically. This will be the default behavior in future versions of
  # rspec-rails.
  config.infer_base_class_for_anonymous_controllers = false

  config.include Rack::Test::Methods
end

0 个答案:

没有答案