[当然,问题不限于特定的“朋友”实现,尽管如果相关,请随时指出实现细节]
阅读未回答的问题,我偶然发现了这个InternalsVisibleTo
属性:
指定通常仅在当前程序集中可见的类型对另一个程序集可见。
MSDN上的C# Programming Guide有一节Friend Assemblies描述了如何使用属性来允许对另一个程序集使用方法和类型。internal
我想知道使用它来创建一个“隐藏”接口来检测库以供单元测试程序集使用是否是一个好主意。它似乎在两个方向上都大大增加了耦合(在生产程序集中测试代码,在测试代码中对生产程序集的深入了解),但另一方面,它可能有助于创建细粒度的测试,而不会弄乱公共接口。
你在测试时使用友元声明是什么体验?是你的银弹,还是它开始了死亡行军?