- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
如何对自定义 DelegatingHandler 进行单元测试?我有以下内容,但它提示未设置 innerHandler。
var httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, "http://foo.com");
var handler = new FooHandler()
{
InnerHandler = new FooHandler()
};
var invoker = new HttpMessageInvoker(handler);
var result = await invoker.SendAsync(httpRequestMessage, new CancellationToken());
Assert.That(result.Headers.GetValues("some-header").First(), Is.Not.Empty, "");
最佳答案
您可以使用虚拟/假处理程序 (TestHandler
) 将您正在测试的 DelegatingHandler (FooHandler
) 的 InnerHandler
属性设置为显示在 that linked post在您的评论中。
public class TestHandler : DelegatingHandler
{
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
return Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK));
}
}
// in your test class method
var httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, "https://example.com/");
var handler = new FooHandler()
{
InnerHandler = new TestHandler() // <-- change to use this
};
var invoker = new HttpMessageInvoker(handler);
var result = await invoker.SendAsync(httpRequestMessage, new CancellationToken());
Assert.That(result.Headers.GetValues("some-header").First(), Is.Not.Empty, "");
与那篇文章不同,这应该是运行测试所需的最低设置。
关于c# - 单元测试 DelegatingHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31650718/
如何对自定义 DelegatingHandler 进行单元测试?我有以下内容,但它提示未设置 innerHandler。 var httpRequestMessage = new HttpReques
我正在尝试记录我的 Web API 项目的 HTTP 响应 header 。 本项目采用VS2012、.NET 4.5和ASP.NET MVC 4开发。 我写了一个 DelegatingHandler
我正在尝试对 DelegateHandler 的实现进行单元测试。我的简化实现: public class FooHandler : DelegatingHandler { prote
我正在尝试对 DelegateHandler 的实现进行单元测试。我的简化实现: public class FooHandler : DelegatingHandler { prote
在 ASP.NET Core 2.1 应用程序中,我使用 HttpClient 发出 REST 请求。我正在使用 DelegatingHandler 来定义一些常见行为。注册我在这里: private
我是依赖注入(inject)的新手,但对 Ninject 和 Ninject.Extensions.Logging 到 [Inject] 我的 ILogger 很满意 无论我需要什么。 但是一些Del
我目前正在使用几个委托(delegate)处理程序(派生自 DelegatingHandler 的类)在发送请求之前处理请求,例如验证签名等。这一切都非常好,因为我不' 必须对所有调用重复签名验证(例
我有代码将命名的 HttpClient 添加到 ServiceCollection 并将 DelegatingHandler 添加到客户端。示例代码: public class MyDelegatin
我正在尝试对 DelegatingHandler 使用依赖注入(inject)包含 2 个接口(interface)和 1 个字符串。 public class MessageHandler : De
DelegatingHandler继承自 HttpMessageHandler .但是,我不明白其中的区别,因为您必须实现相同的方法,SendAsync使两者都起作用。 这两个处理程序有什么区别?我应
我有以下代码,在转发到我的 localhost:1671 时工作正常: protected override async System.Threading.Tasks.Task SendAsync(H
我在类库中有一个自定义的 DelegatingHandler,我需要用 Autofac 注册它。 webapi 宿主解决了它对运行时的依赖,因此宿主没有对该库的引用。 public class Loc
在我的应用程序中,我们从客户端发送大小适中的数据包并接收大小适中的响应,因此我想在向上和返回的过程中实现一些压缩。 在回来的路上它很好,因为我可以依靠 IIS 的动态压缩来为我做这件事,但在回来的路上
在WebAPI自托管应用程序中,DelegatingHandler的SendAsync()方法和ApiController的任何方法是否总是在同一线程上执行? 使用[ThreadStatic]变量将R
我想知道是否可以在 DelegatingHandler 的 SendAsync 方法中访问正在执行(或即将执行)的 Controller ?我似乎不知道如何访问它,我认为这是因为它在 Controll
我正在尝试了解 Web API Http 管道的工作原理! 在我的 Web API 项目中,我使用以下技术来记录/处理异常: ExceptionHandler -> 在全局级别处理异常 Excepti
我正在尝试在 ASP.NET WebAPI 项目中记录整个传入请求和传出响应。虽然我同意 DelegatingHandler,但我的雇主坚持使用 HttpModule。您如何向她解释为什么我们应该使用
我有一个 MVC/Web API 混合项目,我添加了一个简单的 DelegatingHandler 实现来包装 API 响应。这很好用,但处理程序也被调用以请求 MVC Controller 。我的理
我有一个 Web API,它是一个非常薄的基础架构,只包含两个 DelegatingHandler 实现,它们将传入消息分派(dispatch)到业务层中定义的消息处理程序实现。这意味着没有 Cont
我正在阅读文章并检查示例,我发现 Owin 中间件的使用方式与 WebAPI DelegatingHandler 相同:记录传入请求、验证 header 等。 我唯一的理解是 Owin 中间件在管道中
我是一名优秀的程序员,十分优秀!