【发布时间】:2015-06-19 02:04:22
【问题描述】:
我有一个包含一堆方法的类,我为每个方法编写了单元测试。类中的主要方法是encrypt 方法,它接收一条消息并对其进行加密。我还写了这个 encrypt 方法使用的 5 个其他方法,但我不希望用户能够调用这些方法,我只想在 encrypt 方法中使用它们来完成工作,但我不希望用户像@obj.some_method_that_is_not_encrypt 那样做,我只想使encrypt 方法可调用,我知道我可以将这些方法设为私有,但是我的单元测试将失败。我该如何处理这个问题?
【问题讨论】:
-
看这里stackoverflow.com/questions/267237/…你可以使用send绕过私人。
-
@Doon 但这不是很臭吗?
-
气味判断留给读者作为练习:) 它打开了一个全新的蠕虫罐。但是,您(或您的班级)用户可以执行此操作并绕过私有这一事实意味着无论如何都应将私有视为建议。但可惜我没有一个好的答案。我通常测试类的公共接口/行为而不是每个函数,无论是对还是错。
标签: ruby