我的集成测试在一次运行时失败,但如果单独运行则通过。
测试针对的是初始化依赖服务 2 的服务 1。服务 2 通过 DI 接收 HttpClientHandler,它设置默认行为(AllowAutoRedirect 属性)。
由于测试场景,我必须使用 HttpClientHandler 在服务 2 中创建 HttpClient。(具体而言,通过 HttpClientHandler 的调用在响应内容发生更改的集成测试中被拦截。无法通过 HttpWebRequest 和 HttpClientFactory 来执行此操作。因此 HttpClientHandler 的默认行为是在 Service 2 的构造函数中)。
为什么一次运行测试时会出现此错误?两次发生了什么?测试单独工作正常,这真是令人困惑。
System.InvalidOperationException : This instance has already started one or more requests. Properties can only be modified before sending the first request.
Stack Trace:
SocketsHttpHandler.CheckDisposedOrStarted()
HttpClientHandler.set_AllowAutoRedirect(Boolean value)
我在某个地方犯了设计罪吗?