主持人注意: 这里已经发布了39个答案(有些已经删除)。 你发布之前你的答案,考虑你是否能添加一些有意义的讨论。您很有可能只是重复别人已经说过的话。
我偶尔会发现自己需要在类中公开一个私有方法,只是为此编写了一些单元测试。
通常这是因为该方法包含该类中其他方法之间共享的逻辑,并且可以更轻松地自行测试该逻辑,或者另一个原因可能是我想测试同步线程中使用的逻辑而不必担心线程问题。
其他人是否发现自己这样做,因为我真的不喜欢这样做?我个人认为,好处超过了公开方法的问题,而该方法实际上并没有提供课堂以外的任何服务。
更新
谢谢大家的回答,似乎引起了人们的兴趣。我认为,普遍的共识是应该通过公共API进行测试,因为这是使用类的唯一方法,我对此表示同意。我在上面提到的几个我在上面会做的情况并不常见,我认为这样做的好处是值得的。
但是,我可以看到每个人都指出,它永远不会真正发生。而且,当我多考虑一下时,我认为更改代码以容纳测试是一个坏主意-毕竟,我认为测试在某种程度上是一种支持工具,并且如果愿意的话,将系统更改为“支持支持工具”是公然的。坏习惯。
@VisibileForTesting
注释来制作这种方法-我建议您这样做,以便private
正确记录该方法的原因。