【发布时间】:2021-08-05 22:08:23
【问题描述】:
我正在使用 XUnit,需要在运行测试套件之前执行一些操作。所以,我尝试使用 XUnit 的 IClassFixture 功能。但我找不到将依赖项注入 Fixture 类的方法。我的代码结构如下:
public class MyFixture
{
IDependency _dep;
public MyFixture(IDependency dep)
{
_dep = dep;
}
void DoSomeJob()
{
//// some code there
dep.DoSome();
}
}
这是我的测试类代码:
public class MyTest : IClassFixture<MyFixture>
{
[Fact]
public void test_my_code()
{
////simply just test the code
}
}
但是当我运行测试时出现异常
Xunit.Sdk.TestClassException 类夹具类型“MyFixture”有一个或多个未解析的构造函数
【问题讨论】:
-
Xunit 不会那样做依赖注入。为什么会呢?我想不出这样做的正当理由。你能否举一个更好(不那么做作)的例子?
-
IClassFixture的目标是构建这些依赖项并通过将IClassFixture的实例“注入”到测试类来共享它们。 -
试试 xunit 框架中内置的 xunit di 支持:nuget.org/packages/Xunit.Di,这样您就可以像对任何其他应用程序一样注入服务依赖项。