使用 FakeItEasy,如何断言发生了任何调用?
用例是我正在编写一个与存储库一起使用的类,并且作为一个方法的结果,该类应该通过调用 DeleteAll 或为所有元素调用 Delete 从存储库中删除一些元素。
现在,我使用了这样的 try-catch:
try // either
{
A.CallTo(() => module.CardRepo.Delete(A<CardData>.That.IsEqualTo(dummy.CardData[0]))).MustHaveHappened();
A.CallTo(() => module.CardRepo.Delete(A<CardData>.That.IsEqualTo(dummy.CardData[1]))).MustHaveHappened();
}
catch (ExpectationException) // or
{
A.CallTo(() => module.CardRepo.DeleteAll(A<IEnumerable<CardData>>.That.Contains(dummy.CardData[0]))).MustHaveHappened();
A.CallTo(() => module.CardRepo.DeleteAll(A<IEnumerable<CardData>>.That.Contains(dummy.CardData[1]))).MustHaveHappened();
}
但我不喜欢这样,如果有更多选择,它很快就会变得非常难看。有没有更好的办法?我在 FakeItEasy wiki 上找不到任何东西。