WorkItem
ベースがメソッドに 1 回渡され、派生が 1 回渡されることをアサートする必要がありSendEmailWorkItem
ます。
repo = new Mock<IWorkItemRepository>();
repo.Setup(x => x.Add(It.IsAny<WorkItem>())).Verifiable();
repo.Setup(x => x.Add(It.Is<SendEmailWorkItem>(wi => wi.ResponsibleId == responsibleGuid))).Verifiable();
Moq によると、最初の期待値は 2 回発生し、2 回目は 0 回発生します。タイプが同じ継承階層にあるために発生することを理解しています。(以下のアサーションは MSpec 構文です)
It should_add_new_claim_workitem = () => repo.Verify(x => x.Add(MockIt.IsAny<WorkItem>()), Times.Once());
It should_add_security_service_notification_workitem_with_same_responsible_as_new_claim = () => repo.Verify(x => x.Add(MockIt.Is<SendEmailWorkItem>(wi => wi.ResponsibleId == responsibleGuid)), Times.Once());
タイプに基づいて期待を制限するにはどうすればよいですか?