【发布时间】:2022-11-06 20:06:45
【问题描述】:
我有一个Asp.Net Core 6 Web Api 应用程序。
我按照推荐的here 使用WebApplicationFactory<Program> 进行了集成测试。我用IClassFixture<WebAdminTestApplicationFactory<Program>> 将它注入到xUnit 测试类中。
如果你的类拥有一个字段或属性,并且它的类型实现 IDisposable,包含类本身也应该实现 一次性的。实例化 IDisposable 实现的类 并将其存储为实例成员,还负责其 清理。
那么为什么集成测试的 MSDN 示例不将
WebApplicationFactory作为字段处理?不应该处置
WebApplicationFactory吗?因为它确实实现了 IDisposable。
【问题讨论】:
-
鉴于
WebApplicationFactory<T>.Dispose是一种非平凡的方法(即它做处置东西)我认为你应该在您的IClassFixture中调用.Dispose或使用using语句(或IAsyncDisposable的任何等效语句)——尽管我不确定xUnit 是否支持IAsyncDisposable。
标签: c# asp.net-core integration-testing xunit.net