【发布时间】:2011-08-07 11:46:59
【问题描述】:
我有一个两部分的问题:
第 1 部分
我有一个模块,它有一个公共类方法,它依赖于模块中的一些私有帮助方法。测试这些私有辅助方法的最佳方法是什么?它们包含需要测试的复杂逻辑,但不应公开调用它们,因为它们本身并没有提供任何有用的东西。
我在thisstackoverflow 帖子上读到了惯例:
module GTranslate
class Translator
def perform( text ); 'hola munda'; end
end
def self.translate( text )
t = Translator.new
t.perform( text )
end
end
然后在GTranslate::Translator 类的公共方法上编写测试。但是,我不希望此类能够实例化或调用它们的方法。
第 2 部分
看到模块上的公共方法定义为self.someMethodName,这是否意味着辅助方法必须定义为self.helperName?
不会有模块的实例(如果你甚至可以创建模块的实例(我是 Ruby 新手)),所以我不能使用在实例上定义的 send 方法从我的测试?
有什么想法吗?
【问题讨论】:
标签: ruby unit-testing ruby-1.9.2