我正在尝试使用ruby中的 Test :: Unit :: TestCase API来进行一些单元测试但是遇到了使用assert的问题。我只是尝试在使用 Test :: Unit :: TestCase 类的类中调用特定方法,但它一直在断言失败。在我的rake文件中,我有:
require 'test_file'
task :manage do
my_app = Test::Unit::TestCase::Unit_Test
my_app.test1
end
在我的test_file.rb中,我有:
require 'rubygems'
require 'test/unit'
require 'rack/test'
class Unit_Test < Test::Unit::TestCase
include Rack::Test::Methods
# manage tests
def self.test1
browser = Rack::Test::Session.new(Rack::MockSession.new(Sinatra::Application))
browser.get '/homepage'
assert browser.last_response.ok?
end
end
一切正常,直到我得到'assert'语句,其中说明: Unit_Test的未定义方法断言:Class 。如果我不使方法成为静态方法,那么它将运行Unit_Test类中的所有方法。我只想从我的rake文件中运行特定的单元测试。
我错过了什么?
答案 0 :(得分:1)
我想不出从类方法中使用assert的好方法,因为assert是一个实例方法。
如果您只想运行特定的测试方法,最好将测试作为实例方法并使用name参数,例如:
ruby test_file.rb --name test1
您应该可以从佣金任务中调用它。