我有一个两部分的问题:
第1部分
我有一个模块,它有一个公共类方法,它依赖于模块中的一些私有帮助方法。测试这些私有辅助方法的最佳方法是什么?它们包含需要测试的复杂逻辑,但不应公开调用它们,因为它们本身并没有提供任何有用的东西。
我在this stackoverflow post上读到约定是:
module GTranslate
class Translator
def perform( text ); 'hola munda'; end
end
def self.translate( text )
t = Translator.new
t.perform( text )
end
end
然后在 class 的公共方法上编写测试GTranslate::Translator
。但是,我不希望此类能够实例化或调用它们的方法。
第2部分
看到模块上的公共方法定义为self.someMethodName
,这是否意味着辅助方法必须定义为self.helperName
?
将没有模块的实例(如果您甚至可以创建模块的实例(我是 Ruby 新手)),所以我不能使用send
实例上定义的方法从我的测试中调用该方法?
有任何想法吗?