我有一个非常简单的 Sinatra 应用程序,但在测试时遇到了问题。

基本上,当我从浏览器中的测试中得知请求工作正常时,每个请求测试都会返回 404。关于问题可能是什么的任何想法?

test_helper.rb:

ENV["RACK_ENV"] = 'test'

$: << File.expand_path(File.dirname(__FILE__) + '/../lib')
require 'app'
Sinatra::Synchrony.patch_tests!

class Test::Unit::TestCase
  include Rack::Test::Methods
end

app_test.rb
require 'test_helper'
class AppTest < Test::Unit::TestCase
  def app
    @app ||= Sinatra::Application
  end
  def test_it_says_hello
    get "/"
    assert_equal 200,  last_response.status
  end
end

应用程序
$: << 'config'
require "rubygems" require "bundler"

ENV["RACK_ENV"] ||= "development"
Bundler.require(:default, ENV["RACK_ENV"].to_sym)
require ENV["RACK_ENV"]

class App < Sinatra::Base   register Sinatra::Synchrony
  get '/' do
    status 200
    'hello, I\'m bat shit crazy and ready to rock'
  end
end

文件
source :rubygems

gem 'daemons'
gem 'sinatra'
gem 'sinatra-synchrony', :require => 'sinatra/synchrony'
gem 'resque'
gem 'thin'

group :test do
  gem 'rack-test', :require => "rack/test"
  gem 'test-unit', :require => "test/unit"
end

为什么我不能让这个通常非常简单的东西工作?

最佳答案

我遇到了完全相同的问题,只有 HTTP-404 作为返回。

我通过在“app”函数中给出另一个返回来解决它。

class IndexClassTest < Test::Unit::TestCase

  def app
      @app = Foxydeal #appname NOT Sinatra::Application
  end
...
  • 也是
  • Sinatra::Synchrony.patch_tests!
    似乎已经过时了。

    10-06 05:30
    查看更多