【问题标题】:Mocking ASPNET MVC DependencyResolver with Rhino mock用 Rhino 模拟模拟 ASPNET MVC DependencyResolver
【发布时间】:2019-06-06 08:28:15
【问题描述】:

在为其中一个业务逻辑(方法)编写单元测试时,无法模拟 ASP NET MVC DependencyResolver,因为它为此获得了 null。下面是这行代码

DependencyResolver.Current.GetService(typeof(ITestDetails)) as ITestDetails;

不知何故想模拟这条线。

【问题讨论】:

  • 模拟解析器并将当前设置为模拟。在哪里显示正在使用的代码。显示失败的测试。这应该有助于澄清您的要求。

标签: c# asp.net asp.net-mvc unit-testing rhino-mocks


【解决方案1】:

模拟解析器及其预期行为

//create the new resolver that will be used to replace the current one
IDependencyResolver resolver = MockRepository.GenerateMock<IDependencyResolver>();
//mock expected behavior
var testdetails = MockRepository.GenerateMock<ITestDetails>();
resolver.Stub(_ => _.GetService(typeof(ITestDetails))).Returns(testDetails);

并将当前设置为模拟。

//assign the mocked resolver.
DependencyResolver.SetResolver(resolver);

所以现在当

DependencyResolver.Current.GetService(typeof(ITestDetails))

被调用,它将提供模拟解析器并在单元测试时按预期运行

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多