在我的单元测试中,我正在使用 Moq 模拟一个受保护的方法,并且想断言它被调用了一定次数.这个问题描述了与早期版本的 Moq 类似的内容:
In my unit-tests I'm mocking a protected method using Moq, and would like to assert that it is called a certain number of times. This question describes something similar for an earlier version of Moq:
//expect that ChildMethod1() will be called once. (it's protected)
testBaseMock.Protected().Expect("ChildMethod1")
.AtMostOnce()
.Verifiable();
...
testBase.Verify();
但这不再有效;从那时起语法发生了变化,我找不到使用 Moq 4.x 的新等效项:
but this no longer works; the syntax has changed since then and I cannot find the new equivalent using Moq 4.x:
testBaseMock.Protected().Setup("ChildMethod1")
// no AtMostOnce() or related method anymore
.Verifiable();
...
testBase.Verify();
在 Moq.Protected 命名空间,有一个 IProtectedMock 接口,具有以 Times 作为参数的 Verify 方法.
In the Moq.Protected namespace, there is an IProtectedMock interface that has a Verify method taking Times as a parameter.
编辑这至少从最小起订量 4.0.10827 开始可用.语法示例:
Edit This is available since at least Moq 4.0.10827. Syntax example:
testBaseMock.Protected().Setup("ChildMethod1");
...
testBaseMock.Protected().Verify("ChildMethod1", Times.Once());
这篇关于验证使用 Moq 调用受保护方法的次数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
ASP.NET Core 使用 Azure Active Directory 进行身份验证并ASP.NET Core authenticating with Azure Active Directory and persisting custom Claims across requests(ASP.NET Core 使用 Azure Active Directory 进行身
ASP.NET Core 2.0 Web API Azure Ad v2 令牌授权不起作用ASP.NET Core 2.0 Web API Azure Ad v2 Token Authorization not working(ASP.NET Core 2.0 Web API Azure Ad v2 令牌授权不起作用)
ASP Core Azure Active Directory 登录使用角色ASP Core Azure Active Directory Login use roles(ASP Core Azure Active Directory 登录使用角色)
如何获取守护进程或服务器到 C# ASP.NET Web API 的How do I get Azure AD OAuth2 Access Token and Refresh token for Daemon or Server to C# ASP.NET Web API(如何获取守护进程或服务器到 C# ASP.N
.Net Core 2.0 - 获取 AAD 访问令牌以与 Microsoft Graph.Net Core 2.0 - Get AAD access token to use with Microsoft Graph(.Net Core 2.0 - 获取 AAD 访问令牌以与 Microsoft Graph 一起使用)
异步调用时 Azure KeyVault Active Directory AcquireTokenAAzure KeyVault Active Directory AcquireTokenAsync timeout when called asynchronously(异步调用时 Azure KeyVault Active Directory AcquireTokenAsync 超