saveThemeAS.Verify(service => service.Execute(FakeUserID, It.Is<LayoutENT.Theme>(savedTheme =>
savedTheme != null
&& savedTheme.Name == FakeCopiedThemeName
&& savedTheme.ThemeID == 0
&& savedTheme.WidgetSkins.Any(skin => skin.Name == FakeWidgetSkinName && skin.WidgetSkinID == 0)
&& savedTheme.SiteStyles.Any(style => style.SiteStyleID == FakeStyleID && style.SiteStyleID == 0)
)));
对模拟的预期调用至少一次,但从未执行过:
这里的基本问题是我只是失败了,但我不知道具体是什么失败/什么设置不正确,因为它可能是上述 5 个条件中的任何一个。
我想分别检查上面的每个条件。有没有一种巧妙的方法可以在不创建多个测试的情况下使用 Moq 做到这一点?我认为能够捕获传递给模拟的参数然后对其进行测试会很好,但我无法找到一种优雅的方式来做到这一点。