1 回答
TA貢獻1817條經(jīng)驗 獲得超6個贊
首先,ConfigureServices可以代替UseStartup,不能一起使用。其次,您不應該創(chuàng)建范圍并在此期間進行遷移ConfigureServices,而是在構建 Web 主機之后,請參見此處:
Configure在較早的教程中,您可能會在 Startup.cs的方法中看到類似的代碼。我們建議您僅使用 Configure 方法來設置請求管道。應用程序啟動代碼屬于該 Main方法。
這樣做的唯一方法不是在工廠中,而是在工廠建造之后:
public class MyAPITests
: IClassFixture<CustomWebApplicationFactory<Startup>>
{
private readonly HttpClient _client;
private readonly CustomWebApplicationFactory<Startup> _factory;
public MyAPITests(CustomWebApplicationFactory<Startup> factory)
{
_factory = factory;
_client = factory.CreateClient();
var host = factory.Server.Host;
using (var scope = host.Services.CreateScope())
{
var scopedServices = scope.ServiceProvider;
var dbContext = scopedServices.GetRequiredService<MyDbContext>();
dbContext.Database.EnsureCreated();
new MyDbContextSeed()
.SeedAsync(dbContext)
.Wait();
}
}
//...
}
- 1 回答
- 0 關注
- 146 瀏覽
添加回答
舉報
