【发布时间】:2013-11-20 12:55:41
【问题描述】:
我有一个数据库操作对象作为我的 UUT(被测单元)的依赖项。因此,我想让它成为一个严格的模拟,因为我还想确保 UUT 不会调用任何其他可能导致数据库更改的方法。
在犀牛模拟中,我做了以下操作:
- 我从 db 对象做了一个严格模拟
- 我在 Arrange 中做了一个 .Expect 子句
- 我在 Assert 中调用了 VerifyAllExpectations
但是,当我想在 FakeItEasy 中执行此操作时,如果没有代码重复,我找不到如何执行此操作。我尝试将 CallsTo()+MustHaveHappened() 部分放在 Arrange 中,但是我的测试失败了。如果我将 CallsTo()+MustHaveHappened() 部分放在 Assert 中,那么我的测试也会失败,因为对严格的假货进行了意外调用。这可以在不将 CallsTo 调用同时放入 Arrange 和 Assert 的情况下完成吗?
【问题讨论】:
-
UUT = 被测单元?
-
是的,UUT = 被测单元
-
我明白了,谢谢。我以前没听过这个词。我通常使用 SUT - 被测系统。
标签: c# unit-testing rhino-mocks fakeiteasy