我正在尝试使用Ruby的Test::Unit创建一些数据驱动的API测试。 最终目的是从.csv文件中读取一系列测试用例。 在寻找相当于测试@dataprovider的东西时,我找到了一个名为 Data 的类,它看起来正是我需要的。
http://www.rubydoc.info/github/test-unit/test-unit/Test/Unit/Data/ClassMethods
但是,当我尝试创建一个测试用例以尝试使其工作时,我收到一个错误,说
"initial_test.rb:4:in <class:InitialTest>': undefined method
data' for InitialTest:Class (NoMethodError(">
我正在运行的代码:
require "test/unit"
class InitialTest < Test::Unit::TestCase
data("true" => [true],
"false" => [false])
def test_true_is_true(data)
value = data
assert(false, "FAIL!")
end
end
我似乎在文档之外找不到任何关于 Data 类的提及。 有人用过这个类吗? 我错过了什么吗?
我不是特别熟悉这个模块,但是由于data
被定义为Test::Unit::Data
上的实例方法,并且Test::Unit::Data
是一个模块,因此可以:
class YourTest < Test::Unit::TestCase
include Test::Unit::Data
data(…)
end
也就是说,您将需要仔细查看您链接的文档,因为您的示例用法看起来像复制粘贴。
事实证明,问题是我使用的是旧版本的 Ruby,其中不包含我尝试使用的类。 更新到较新版本解决了问题。