【发布时间】:2012-08-16 22:27:22
【问题描述】:
我有一个私有方法,它根据调用者方法返回一些东西:
private
def aPrivateMethod
r = nil
caller_method = caller[0][/`([^']*)'/, 1]
case caller_method
when "method_1"
r = "I was called by method_1"
when "method_2"
r = "I was called by method_2"
end
return r
end
在编写测试单元时,调用这个私有方法的方法名不会是method_1也不是method_2,它会以test开头,我找不到返回测试通过的解决方案。
【问题讨论】:
-
我很好奇你为什么要做这样的事情——我从来没有想过测试哪个对象正在调用另一个对象。在我看来,如果这很重要,那么被测代码过于紧密耦合,或者需要重构以允许直接的单元测试。
-
代码很可能需要重构,但在它的初始状态下,我看不到如何重构。不要问为什么。 :)
标签: ruby unit-testing