使用Test :: Unit :: Data

时间:2017-04-05 15:37:08

标签: ruby testunit data-driven-tests

我正在尝试使用Test :: Unit为ruby创建一些数据驱动的API测试。最终的目的是从.csv文件中读取一系列测试用例。在寻找与testd的@dataprovider相当的东西时,我找到了一个名为Data的类,它看起来就像我需要的那样。

http://www.rubydoc.info/github/test-unit/test-unit/Test/Unit/Data/ClassMethods

但是,当我尝试创建测试用例以尝试使其正常工作时,我收到错误消息

&#34; initial_test.rb:4:在<class:InitialTest>': undefined method数据&#39; for InitialTest:Class(NoMethodError) &#34;

我正在运行的代码:

    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类的内容。有没有人用过这门课?我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

我特别不熟悉此模块,但由于data被定义为Test::Unit::Data上的实例方法而Test::Unit::Data是一个模块,因此可行:

class YourTest < Test::Unit::TestCase
  include Test::Unit::Data

  data(…)
end

这就是说,您可能希望仔细查看您链接的文档,因为您的示例用法看起来像copy-pasta。

答案 1 :(得分:0)

事实证明,问题在于我使用的旧版Ruby不包含我尝试使用的类。更新到更新版本解决了问题。