我有一段代码要测试:
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。知道我该如何解决这个问题吗?