MOQ-使用apeprepository.verify()与时间



我希望查看是否可以在模拟属性的设置中指定一个时间枚举值,然后通过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

最新更新