gpt4 book ai didi

ruby - 使用 Test::Unit 测试模块

转载 作者:数据小太阳 更新时间:2023-10-29 08:25:35 26 4
gpt4 key购买 nike

我在尝试使用 Test::Unit 测试模块时遇到了问题。我以前做的是这样的:

my_module.rb:

class MyModule
def my_func
5 # return some value
end
end

test_my_module.rb:

require 'test/unit'
require 'my_module'

class TestMyModule < Unit::Test::TestCase
include MyModule

def test_my_func
assert_equal(5, my_func) # test the output value given the input params
end
end

现在的问题是,如果 my_module 声明了一个初始化方法,它会包含在测试类中,这会导致一系列问题,因为 Test::Unit 似乎覆盖/生成了一个初始化方法。所以我想知道测试模块的最佳方法是什么?

我还想知道此时我的模块是否应该成为一个类,因为初始化方法是用来初始化某些东西的状态的。意见?

提前致谢!

最佳答案

在模块中包含 initialize 方法对我来说感觉很不对,所以我至少会重新考虑一下。

不过,为了更直接地回答有关将其作为模块进行测试的问题,我会创建一个新的空类,将您的模块包含在其中,创建该类的一个实例,然后针对该实例进行测试:

class TestClass
include MyModule
end

class TestMyModule < Unit::Test::TestCase
def setup
@instance = TestClass.new
end

def test_my_func
assert_equal(5, @instance.my_func) # test the output value given the input params
end
end

关于ruby - 使用 Test::Unit 测试模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1759021/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com