Я создал модульный тест, который проверяет взаимодействия в моем классе ViewModel в приложении Silverlight. Чтобы сделать этот тест, я издеваюсь над интерфейсом службы, введенным в ViewModel. Я использую Moq Framework для насмешек.
, чтобы иметь возможность убедиться, что связанный объект в ViewModel преобразован правильно, я использовал обратный вызов:
[Test]
public void SaveProposal_Will_Map_Proposal_To_WebService_Parameter()
{
var vm = CreateNewCampaignViewModel();
var proposal = CreateNewProposal(1, "New Proposal");
Services.Setup(x => x.SaveProposalAsync(It.IsAny<saveProposalParam>())).Callback((saveProposalParam p) =>
{
Assert.That(p.plainProposal, Is.Not.Null);
Assert.That(p.plainProposal.POrderItem.orderItemId, Is.EqualTo(1));
Assert.That(p.plainProposal.POrderItem.orderName, Is.EqualTo("New Proposal"));
});
proposal.State = ObjectStates.Added;
vm.CurrentProposal = proposal;
vm.Save();
}
Работает нормально, но, если вы заметили, с помощью этого механизма часть модульного теста Assert и Act поменялась местами (Assert предшествует Acting). Есть ли лучший способ сделать это, сохранив правильный порядок AAA?