我希望查看是否可以在模拟属性的设置中指定一个时间枚举值,然后通过mockrepository.verify.verify.verify((方法在该设置中进行操作。断言我的AAA风格测试。我当前的代码读取:
// Arrange
var repository = new MockRepository(MockBehavior.Default);
var mockLogin = repository.Create<Login>();
mockLogin.SetupProperty(d => d.LoginID, 1515254);
var mockIApplicationEventLogService = repository.Create<IApplicationEventLogService>();
mockIApplicationEventLogService.Setup(d => d.InsertApplicationEventLog(It.IsAny<ApplicationEventLog>())).Verifiable();
var mockILoginResetFailedService = repository.Create<ILoginResetFailedService>();
mockILoginResetFailedService.Setup(d => d.GetLoginResetFailedByLoginID(It.IsAny<int>())).Returns((LoginResetFailed)null);
var mockApplicationEventLog = repository.Create<ApplicationEventLog>();
mockApplicationEventLog.SetupAllProperties();
var LoginWorkflowService = new LoginWorkflowService()
{
ApplicationEventLogService = mockIApplicationEventLogService.Object,
ApplicationEventLog = mockApplicationEventLog.Object,
LoginResetFailedService = mockILoginResetFailedService.Object
};
// Act
var result = LoginWorkflowService.CheckLoginResetFailuresLock(mockLogin.Object, It.IsAny<Guid>(), It.IsAny<SecurityPolicy_Aggregate>(), It.IsAny<string>(), It.IsAny<string>());
// Assert
result.Should().BeTrue();
mockIApplicationEventLogService.Verify(d => d.InsertApplicationEventLog(It.IsAny<ApplicationEventLog>()), Times.Never);
我想做的就是呼叫repository.verify((,但是在我当前的代码veriafy((呼叫的情况下,会期望insertapplicationeventlog被调用,而实际上我希望它永远不会有被称为。我已经尝试过时间。从未进入MockiaPplicationEventLogservice的设置方法,但似乎没有一种方法可以替代它。如果我的存储库中的模拟不应该被打电话,我是否仅限于个人验证((调用,或者有办法解决这个问题吗?
看起来正如Nkosi所说,目前不可能这样做。在以下URL上有一个请求:
https://github.com/moq/moq4/issues/373