无法创建假请求.Uri

问题描述 投票:0回答:0

我有一段代码要测试:

 public override async Task Invoke(IOwinContext context)
 {
 
   if (context.Request.Uri.AbsolutePath.ToLower().Equals("/data"))
   {
     ..other stuff
   }
    await this.Next.Invoke(context);
 }

现在我想对此进行单元测试,但得到 AbsolutePath 的异常

System.InvalidOperationException:不支持此操作 一个相对 URI。在 System.Uri.get_AbsolutePath()

这是我的单元测试:

   [Test]
   public void MiddleWare_Should_Not_Call_Process_Request_IF_Uri_Does_Not_Match()
   {
     var request = A.Fake<IOwinRequest>();
     A.CallTo(() => request.Uri).Returns(new Uri("http://dummyUrl.com/login"));
     var middleware = new MyMiddleware(_owinMiddleware);
     middleware.Invoke(this._owinContext).GetAwaiter().GetResult();

     Assert.IsNull(this._owinContext.Response);
  }

我正在使用 Nuit 和 FakeItEast。知道我该如何解决这个问题吗?

c# .net unit-testing nunit fakeiteasy
© www.soinside.com 2019 - 2024. All rights reserved.