【发布时间】:2019-09-06 01:28:31
【问题描述】:
我正在 Rhinomocks 框架的帮助下为 c# 方法编写单元测试用例。在我的实际方法中,我从 System.Net.Http.HttpRequestMessage 命名空间下的 Uri 属性访问 Scheme 属性。
scheme 属性在实际方法中的访问方式类似于_requestContext.RequestMessage.RequestUri.Scheme。
当我运行我的单元测试用例时,当它尝试访问/读取方案属性时,它会在我的实际实现方法中崩溃。
为了模拟 URI 和 Scheme 属性,我尝试了以下方法,但没有按预期工作。
var uri = new Uri("http://tempuri.org/");
//requestContext.Expect(r => r.RequestMessage.RequestUri).Return(uri).Repeat.Any();
requestContext.Stub(x => x.RequestMessage.RequestUri).Return(uri);
requestContext.Stub(x => x.RequestMessage.RequestUri.Scheme).Return("http");//this is the value the scheme should return when it is accessed inside the actual method
为存在于 Uri 下的 Scheme 属性创建存根/模拟的正确方法是什么。
注意:我指的是 System.Net.Http.HttpRequestMessage 命名空间下的 Uri 属性。
【问题讨论】:
标签: c# unit-testing mocking rhino-mocks stub