【发布时间】:2021-04-20 03:51:22
【问题描述】:
我需要 xUnit 来处理内部测试类。 问题是我使用了通用基础测试夹具 UnitTestBase。 所以我将我的灯具创建为
class MyFixture: UnitTestBase<SomeSystemUnderTheTest>
{
...
}
在某些情况下,SomeSystemUnderTheTest 似乎是内部类。让我们称之为SomeSystemUnderTheTestInternal。结果UnitTestBase<SomeSystemUnderTheTestInternal> 也似乎是内部的,即使UnitTestBase 公开。因此,我无法将 MyFixture 指定为公开的,因为编译器说您的基类具有较少的可访问性。所以我的 MyFixture 只能是内部的,但是 xUnit 要求它是公共的。有没有一种解决方法可以让 xUnit 与内部固定装置一起工作?
SomeSystemUnderTheTest 是一个实现某些接口的类。它不会直接在任何由 DI 容器注入的地方直接使用。它被标记为内部。我稍微简化了上面的情况,SomeSystemUnderTheTest 实际上是从泛型类 SomeSystemUnderTheTestBase 派生的,其中 SomeInternalClass 是一个内部类,因此整个树都是内部的。我无法更改它,因为这不是我们想做的事情。
【问题讨论】:
-
SomeSystemUnderTheTest是什么?为什么在某些情况下似乎是内部类?在其他情况下它是否显示为公共课程?怎么样? -
@ChetanRanpariya 我已经更新了问题并解释了什么是类以及为什么它是内部的
-
你真的不需要最后一段解释为什么一个类可能是内部的。类是内部的是完全合理的!我只想说“在某些情况下
SomeSystemUnderTheTest将是一个内部类”而不是“似乎是”。
标签: c# xunit access-modifiers base-class