主持人注意: 这里已经发布了39个答案(其中一些已被删除). 在您发布答案之前,请考虑您是否可以在讨论中添加有意义的内容.你很可能只是重复别人已经说过的话.
我偶尔发现自己需要在公共类中创建一个私有方法,只是为它编写一些单元测试.
通常这是因为该方法包含在类中的其他方法之间共享的逻辑,并且它自己测试逻辑更加整洁,或者另一个原因可能是我想测试同步线程中使用的逻辑而不必担心线程问题.
其他人发现自己这样做,因为我真的不喜欢这样做吗?我个人认为奖金超过了公开方法的问题,并没有真正提供课外的任何服务......
UPDATE
感谢大家的回答,似乎激起了人们的兴趣.我认为普遍的共识是测试应该通过公共API进行,因为这是一个类将被使用的唯一方式,我同意这一点.我上面提到过的几个我上面提到的案例都是不常见的案例,我认为这样做的好处是值得的.
但是,我可以看到每个人都指出它永远不应该发生.当我考虑更多时,我认为更改代码以适应测试是一个坏主意 - 毕竟我认为测试是一种支持工具,并且如果你愿意,将系统更改为"支持支持工具",则是公然的糟糕的做法.