我有一个数据库操作对象作为我的 UUT(被测单元)的依赖项。因此,我想让它成为一个严格的模拟,因为我还想确保 UUT 不会调用任何其他可能导致数据库更改的方法。
在犀牛模拟中,我做了以下事情:
- 我从 db 对象做了一个 strictmock
- 我在安排中做了一个 .Expect 子句
- 我在 Assert 中调用了 VerifyAllExpectations
但是,当我想在 FakeItEasy 中执行此操作时,如果不重复代码,我找不到如何执行此操作。我尝试将 CallsTo()+MustHaveHappened() 部分放在 Arrange 中,但是我的测试失败了。如果我将 CallsTo()+MustHaveHappened() 部分放在 Assert 中,那么我的测试也会失败,因为对严格的伪造进行了意外调用。这可以在不将 CallsTo 调用同时放入 Arrange 和 Assert 的情况下完成吗?