我有一个类似于以下的单元测试类:
[TestClass]
internal class AttractionRepositoryUnitTest :
RepositoryBaseTest<AttractionRepository, Attraction, AttractionFakeRepository>
{
//Code here
}
由于使用internal
修饰符,因此从未找到这些类中的测试。为了使其可见,RepositoryBaseTest
中的一个类必须公开,这是不受欢迎的,为了避免这种情况,我需要进行重构,这需要一些时间。是否可以在不修改可见性的情况下使该测试类对单元测试可见?
Test类是它的内部类。
答案 0 :(得分:2)
InternalsVisibleToAttribite
将此属性添加到希望内部可见的位置。对于多个程序集,在必要时使用多个属性。
如果您无法添加该属性,则需要使用反射来访问有问题的属性。
答案 1 :(得分:0)
假设RepositoryBaseTest
的所有类型参数都实现了某个接口,则只需提供这些接口的公共实现即可,这些内部实现封装了内部实现:
public AttractionRepositoryTestWrapper : IAttractionRepository
{
private AttractionRepository _attractionRepositoryImpl;
// forward all calls to _attractionRepositoryImpl
}
如果需要,其他内部组件也是如此。
然后可以RepositoryBaseTest
公开,AttractionRepositoryUnitTest
也可以公开。