我想弄清楚如何在XUnit中使用依賴注入。我的目標是能夠將我的ProductRepository注入到我的測試類中。XUnit和ASP.NET Core 1.0的依賴注入
這裏是我想要的代碼:
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。
丹尼,如果你可以上傳一個例子,github上,這將是真棒。我不得不承認,我仍然有點困惑。假設我有一個IProductRepo和一個ProductRepo:你能給我一個使用DI獲得ProductRepo實例的正確方法的例子,這樣我就可以在我的測試類中使用它了嗎? –
布萊克,我已經更新了我的答案。你會做的是,而不是IPrimeService,你會寫IProductRepo而不是NegativePrimeService,你會寫ProductRepo。現在希望它清楚。 –