gpt4 book ai didi

c# - AspNetCore 集成测试多个 WebApplicationFactory 实例?

转载 作者:行者123 更新时间:2023-12-03 17:44:53 25 4
gpt4 key购买 nike

有谁知道是否可以在同一单元测试中托管WebApplicationFactory<TStartop>()的多个实例?

我已经尝试过并且似乎无法解决这一问题。

IE

_client = WebHost<Startup>.GetFactory().CreateClient();
var baseUri = PathString.FromUriComponent(_client.BaseAddress);
_url = baseUri.Value;

_client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
"Bearer", "Y2E890F4-E9AE-468D-8294-6164C59B099Y");
WebHost只是一个帮助程序类,它使我可以轻松地在一行中建立工厂,然后建立一个客户端。

在幕后,它所做的就是:
new WebApplicationFactory<TStartup>(),还有其他一些东西。

如果我能站起来另一台Web服务器的另一个实例来测试服务器到服务器的功能,它 将是不错。

有人知道这是否可行吗?

最佳答案

不,不可能。 WebApplicationFactory依靠xUnit的IClassFixture,它必须在类级别应用,这意味着您只能对苹果一口气。 WebApplicationFactory本身可以针对每个测试进行自定义,可以满足大多数需要“不同”的用例的情况,但是这并不能帮助您同时需要两个完全独立的事件测试服务器。

但是,这就是说,您首先要的是不良的测试设计。测试的全部目的是消除变量,以便您实际上可以确保SUT的一部分正常工作。即使在集成测试环境中,您仍然只是在查看应用程序各部分之间的特定交互。有两台互相提供帮助的测试服务器,可以有效地将变量相乘,从而不能保证任何一方都能正常工作。

关于c# - AspNetCore 集成测试多个 WebApplicationFactory 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54944216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com