Thi*_*ago 22 refactoring easymock
我知道@VisibleForTesting是不可取的,因为它只是为了测试目的而改变了类的接口.理想情况下,我们应该测试我们实际使用的接口.但什么是一个好的选择?
Fed*_*les 38
@VisibleForTesting正如您所说,您使用的时候想要测试一部分您未向最终用户公开的代码.如果你想测试它,那很可能意味着它很复杂,或者至少不是微不足道的.两种解决方案是:
当东西开始变得复杂时,我非常喜欢#2,因为我可以有一个外部对象,我可以测试并确保它可以工作,而不必通过我们的界面公开它.
话虽如此,有时行为并不能保证将方法提取到新对象中,而@VisibleForTesting只是为了节省时间.经验是什么告诉你何时值得这样做(或不是).