c# - 模拟 HttpListenerContext

标签 c#

我正在尝试对一些使用 HttpListenerContext 的代码进行单元测试。我找不到可以模拟的基类或接口(interface)。 HttpListenerContext 是否有类似 HttpRequestBase 的东西?

最佳答案

解决问题的方法是创建一个带有虚方法的抽象类。

public abstract class HttpListenerContextBase
{
    public virtual HttpListenerRequestBase Request { get; private set; }
    public virtual HttpListenerResponseBase Response { get; private set; }
    public virtual IPrincipal User { get; private set; }
}

然后您可以为真正的类创建自己的包装类,在构造函数中接受 HTTPListnerContext 并继承自 HttpListenerContextBase。它只是从真实上下文中返回方法。

然后在您的代码中针对 HttpListenerContextBase 编写所有方法并注入(inject)模拟方法。

一点点努力,但能让你得到一些可测试的东西。

关于c# - 模拟 HttpListenerContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15091134/

相关文章:

c# - 通过 Windows Phone 访问 WCF 服务

c# - MathNet- 'System.TypeInitializationException'

C# SQL 依赖仅适用于插入,不适用于 1 台服务器上的更新

c# - 永远不要使用 ViewData 吗?

c# - Microsoft.ML 中的 "Entry point ' Trainers.FastTreeRegressor ' not found"

c# - ASP5/MVC6 中的 session 变量

c# - 在 .resx 中将图像存储为 byte[] 而不是 Bitmap

c# - .NET 中的泛型方法无法推断其返回类型。为什么?

c# - 无法创建类型为 'xxx' 的常量值。在此上下文中仅支持原始类型或枚举类型

c# - 如何从 "Full Screen"中的 C#/WPF 打开 Excel 文件?