【问题标题】:Sinatra Rack Test "0 Tests" runSinatra 机架测试“0 次测试”运行
【发布时间】:2015-02-16 18:28:19
【问题描述】:

我正在尝试为一个小型 Sinatra 应用程序编写一些单元测试。当我运行ruby test.rb 时,终端报告它正在“运行测试”,但实际上并没有启动我的单元测试。

无论是通过本地输入 ruby app.js 还是通过 phusion 乘客,应用程序本身都运行良好,因此希望这表明我的 config.ru 和 app.js 文件设置正确。

这是我目前所拥有的。

test.rb

require_relative 'app'
require 'test/unit'
require 'rack/test'

ENV['RACK_ENV'] = 'test'

class AppTest < Test::Unit::TestCase
  include Rack::Test::Methods

  puts "Debug 1"
  def app
    puts "Debug 2"
    Sinatra::Application
  end

  def root
    get '/'
    assert last_response.ok?
  end
end

终端

$ ruby test.rb
Debug 1
Run options: 

# Running tests:

Finished tests in 0.004781s, 0.0000 tests/s, 0.0000 assertions/s.
0 tests, 0 assertions, 0 failures, 0 errors, 0 skips

ruby -v: ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin14.0]

似乎“app”和第一个测试“root”从未运行过,因为没有打印调试行。我在测试设置中遗漏了什么?看起来好像我在模仿 sinatra 配方/现有应用程序中的测试,所以我不确定我在搞砸什么。谢谢!

【问题讨论】:

    标签: ruby unit-testing sinatra rack-test


    【解决方案1】:

    测试方法必须命名为test_root 才能运行测试。否则它只是一个私有方法,除非被test_ 方法调用,否则它不会被调用。

    【讨论】:

    • 就是这样!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2020-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-10
    • 1970-01-01
    • 2016-05-03
    • 1970-01-01
    相关资源
    最近更新 更多