【发布时间】:2018-02-27 00:32:20
【问题描述】:
我正在寻找有关为 SUT 包含异步 ASP.NET 操作的复杂集成测试设置同步上下文的指导。
我有一个模拟 HttpContext 并且可以执行同步操作方法。但是异步操作通常会因 HttpContext.Current 为空而失败。通过阅读,我认为我需要调用 SynchronizationContext.SetSynchronizationContext 以便在异步操作进行时将 HttpContext.Current 从一个线程“移动”到另一个线程。
我试过了:
- 类似于this 的简单 TestSynchronizationContext - 仍然失败,并显示为空 HttpContext.Current
- 使用反射实例化 AspNetSynchronizationContext - 尚未管理,因为类和依赖项是内部的,这使得这非常困难
有什么建议吗?
【问题讨论】:
标签: c# asp.net-mvc unit-testing async-await