我构建了返回ProfileBase.Create的方法:
public class ProfilesProvider : ProfileBase, IProfilesProvider
{
public ProfilesProvider GetUserProfile()
{
return (HttpContext.Current.Profile) as ProfilesProvider;
}
public ProfilesProvider GetUserProfile(string userName)
{
if (String.IsNullOrEmpty(userName))
return (HttpContext.Current.Profile) as ProfilesProvider;
return Create(userName) as ProfilesProvider;
}
}
这段代码工作得很好,但是当我尝试为这个方法创建单元测试时,我收到了一个错误:
System.InvalidOperationException:在应用程序的启动前初始化阶段,无法调用此方法。
P.S 这里是测试代码:
_mockProfiles.Setup(m => m.GetUserProfile()).Returns(new ProfilesProvider());
var result = _controller.Settings(model);
_mockProfiles.Verify(m => m.GetUserProfile(), Times.Once());
Assert.IsInstanceOfType(result, typeof(RedirectToRouteResult));
答案 0 :(得分:1)
修正了,我只是打破了ProfileBase和我的Class之间的依赖关系。