同事遇到了需要对私有方法进行单元测试的情况,上网查了下,如果确实想仅仅对私有方法进行测试(并不推荐这样,原因后面叙述),可以使用send方法:
我认为私有方法不需要进行单独测试,理由如下:
1.定义了私有方法必然会有公有方法直接或间接调用了这个私有方法,因此对公有方法进行测试就间接地测试了这个私有方法
2.直接对私有方法进行测试会破坏类的访问结构
class A
private
def just_show(someone)
puts "I am #{someone}"
end
end
A.new.send :just_show,"Jerry"
我认为私有方法不需要进行单独测试,理由如下:
1.定义了私有方法必然会有公有方法直接或间接调用了这个私有方法,因此对公有方法进行测试就间接地测试了这个私有方法
2.直接对私有方法进行测试会破坏类的访问结构