Using Test::Unit::Data



我正在尝试使用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,其中不包含我尝试使用的类。 更新到较新版本解决了问题。

最新更新