Как я понимаю, упорядоченный утверждения в FakeItEasy 2 сделаны, как это (из документации):OrderedAssertions петля Howto в FakeItEasy 2
// Assert
A.CallTo(() => unitOfWorkFactory.BeginWork()).MustHaveHappened()
.Then(A.CallTo(() => usefulCollaborator.JustDoIt()).MustHaveHappened())
.Then(A.CallTo(() => unitOfWork.Dispose()).MustHaveHappened());
Теперь предположим, что у меня есть коллекция и для каждого элемента в этой коллекции я хочу утверждать, что был сделан вызов поддельному объекту. Каков наилучший подход к утверждению звонков был сделан в правильном порядке?
Я придумал это, но не очень нравится:
IOrderableCallAssertion ioca = null;
foreach (var item in items.OrderBy(i => i.Id)
{
var itemUnderTest = item;
if (ioca == null)
{
ioca = A.CallTo(() => fakeObject.Handle(itemUnderTest, otherArgument)).MustHaveHappened(Repeated.Exactly.Once);
}
else
{
ioca = ioca.Then(A.CallTo(() => fakeObject.Handle(itemUnderTest, otherArgument)).MustHaveHappened(Repeated.Exactly.Once));
}
}