当为其中一个业务逻辑(方法)编写单元测试时,无法模拟ASP DependencyResolver
,因为它的值为空。下面是这行代码
DependencyResolver.Current.GetService(typeof(ITestDetails)) as ITestDetails;
不知何故,我想嘲笑这句话。
发布于 2019-06-06 19:30:44
模拟解析器及其预期行为
//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);
并将当前设置为mock。
//assign the mocked resolver.
DependencyResolver.SetResolver(resolver);
所以现在当
DependencyResolver.Current.GetService(typeof(ITestDetails))
时,它将提供模拟的解析器,并在进行单元测试时按预期运行。
https://stackoverflow.com/questions/56473634
复制相似问题