【发布时间】:2016-06-26 01:08:07
【问题描述】:
我试图弄清楚如何在 XUnit 中使用依赖注入。我的目标是能够将我的 ProductRepository 注入到我的测试类中。
这是我正在尝试的代码:
public class DatabaseFixture : IDisposable
{
private readonly TestServer _server;
public DatabaseFixture()
{
_server = new TestServer(TestServer.CreateBuilder().UseStartup<Startup>());
}
public void Dispose()
{
// ... clean up test data from the database ...
}
}
public class MyTests : IClassFixture<DatabaseFixture>
{
DatabaseFixture _fixture;
public ICustomerRepository _repository { get; set; }
public MyTests(DatabaseFixture fixture, ICustomerRepository repository)
{
_fixture = fixture;
_repository = repository;
}
}
这是错误: 以下构造函数参数没有匹配的夹具数据(ICustomerRepository 存储库)
这让我相信 XUnit 不支持依赖注入,除非它是一个 Fixture。
有人可以给我一种使用 XUnit 在我的测试类中获取 ProductRepository 实例的方法吗?我相信我正确地启动了一个测试服务器,因此 Startup.cs 运行并配置了 DI。
【问题讨论】:
-
试试 xunit 框架中内置的 xunit di 支持:nuget.org/packages/Xunit.Di,这样您就可以像对任何其他应用程序一样注入服务依赖项。
标签: c# asp.net asp.net-core xunit asp.net-core-1.0