【问题标题】:Using Test::Unit::Data使用 Test::Unit::Data
【发布时间】:2017-04-05 15:37:08
【问题描述】:

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

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

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

"initial_test.rb:4:in <class:InitialTest>': undefined methoddata' 用于 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 类的内容。有人用过这个类吗?我错过了什么吗?

【问题讨论】:

    标签: ruby testunit data-driven-tests


    【解决方案1】:

    我对这个模块并不特别熟悉,但由于data 被定义为Test::Unit::Data 上的实例方法,而Test::Unit::Data 是一个模块,所以它可以工作:

    class YourTest < Test::Unit::TestCase
      include Test::Unit::Data
    
      data(…)
    end
    

    这就是说,您将需要仔细查看您链接的文档,因为您的示例用法看起来像复制意大利面。

    【讨论】:

    • 谢谢。我主要只是想让一个简单的基础测试正常工作,这样我就可以在尝试做任何更复杂的事情之前确保我的语法是正确的。这是我第一次尝试使用 Test::Unit。
    【解决方案2】:

    原来问题在于我使用的是旧版本的 Ruby,它不包含我尝试使用的类。更新到新版本解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-06
      • 1970-01-01
      相关资源
      最近更新 更多