[ 当然,问题不仅限于特定的"朋友"实现,请尽可能指出相关的实施细节 ]
通过未解答的问题,我偶然发现了这个InternalsVisibleTo属性:
指定仅在当前程序集中通常可见的类型对另一个程序集可见.
MSDN上的C#编程指南有一个Friend Assemblies部分,描述了如何使用该属性允许将方法和类型用于另一个程序集.internal
我想知道使用它来创建一个"隐藏"界面来检测库以供单元测试组件使用是否是一个好主意.它似乎在两个方向上大量增加耦合(测试生产程序集中的代码,关于测试代码中生产程序集的内部知识),但另一方面,它可能有助于创建细粒度的测试而不会混乱公共接口.
您在测试时使用好友声明的经验是什么?它是你的银色子弹,还是它开始了死亡三月?
.net language-agnostic unit-testing internalsvisibleto friend