![]() |
1
7
我认为你不能重设这样的模拟。相反,如果你知道
话虽如此,我还是会为此创建两个单独的测试。作为两个测试,更容易看到转换到状态1是否失败,或者转换到状态2是否失败。另外,当这样一起测试时,如果转换到状态1失败,则测试方法退出,并且转换到状态2不会被测试。
作为一个例子,我用xUnit测试了以下代码:
此测试失败,并显示消息“状态2后失败”。这模拟了如果将foo推入状态2的方法调用
再次查看您的代码,因为您正在调用一个方法来验证它是否在mock上调用另一个方法,我认为您需要设置
|
|
2
117
我认为在创建这篇文章之后很久,他们添加了OP要求的功能,有一个Moq扩展方法叫做 Moq.MockExtensions.ResetCalls() .
更新 现在,我们应该在库的最新版本上使用.Invocations.Clear()而不是.ResetCalls():
|
|
3
4
我也见证了这些次,确切地说(1)在使用MoQ的单元测试中验证失败,错误消息是“被调用了2次”。我认为这是MoQ中的一个bug,因为我希望每次测试运行时都有干净的模拟状态。
|
![]() |
4
3
您可以使用回调方法而不是Verify,并对调用进行计数。
|
![]() |
5
3
取决于你用的是哪个版本的Mock,我肯定我们能做到
|
![]() |
6
2
这确实是单元测试滥用,因为您正在一个测试中验证两个东西。如果你接受
|
![]() |
7
2
加上@stackunderflow的回答(哈哈,nice nick:)
在以后的Moq版本中,
|
![]() |
8
0
下一种方法对我很好(使用Moq.Sequence)
|
|
wavesinaroom · 断言结构向量长度 8 月前 |
![]() |
Tim Kirkwood · 比较空数据帧 8 月前 |
![]() |
Kamran Khan · 使用单元测试ASP。NET核心 1 年前 |
![]() |
paymer · 为什么我的代码没有删除我的单元测试生成的zip文件? 1 年前 |
![]() |
Ricky Mo · 角度测试如何模拟导入的const 1 年前 |
![]() |
Natty · Visual Studio中缺少“代码覆盖率结果” 1 年前 |