我 在.net core 3中看到IClassFixture用于集成测试,现在我想为一个项目编写一个集成测试,该项目是.et6,我应该使用什么来代替.net 6中的IClassFixture用于集成测试?
下面是我的尝试:
public class TicketControllerTests : IClassFixture<WebApplicationFactory<Program>>
{
private readonly HttpClient _client;
public TicketControllerTests(WebApplicationFactory<Program> factory)
{
_client = factory.CreateDefaultClient();
}
[Fact]
public async Task Get()
{
var response = await _client.GetAsync("/Tickets/Test");
//Assert
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
}
}
这里我得到这个错误:
2条答案
按热度按时间nhhxz33t1#
我通过更改我的program.cs解决了这个问题。首先,我在我的API中添加以下代码作为ProgramBuilder:
然后在program.cs中添加以下代码:
我用这个链接,它帮了我很多:https://github.com/dotnet/aspnetcore/issues/40361
7vux5j2d2#
您可以在
.Net
的所有版本中使用IClassFixture
。我认为你的错误来自
Program.cs
,把你的代码放在这里可以帮助你。