【发布时间】:2015-09-30 21:24:52
【问题描述】:
我使用 JustMock 框架并有以下断言:
Mock.Assert(() => activityListenerMock.PeriodPassed(
Arg.Matches<Period>(e => e.Length == expectedLength)));
失败并显示神秘消息:
Occurrence expectation failed. Expected at least 1 call. Calls so far: 0
我怎样才能得到更好的消息。我想知道它被称为什么值。
方法实际上被调用但参数错误,因为当我将断言更改为跟随它时:
Mock.Assert(() => activityListenerMock.PeriodPassed(
Arg.IsAny<Period>()));
【问题讨论】:
-
你能展示一个简短但完整的例子吗?这样可以更轻松地为您提供帮助。
-
该消息可能比您想象的更有帮助。这意味着该断言正在使用隐式
OccursAtLeast(1)。如果断言的方法没有按照匹配器的预期执行,您的测试将失败。如果您正在调试并且看到正在执行的方法,那是因为正在执行原始方法,而不是模拟的方法。正如您自己发现的那样,当您修复匹配器以实际匹配测试场景时,它会起作用。
标签: c# unit-testing mocking justmock