- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下测试用例:
[Test]
public void MarkAsSuccessfulTest()
{
//setup data
var payment = Util.DbUtil.CreateNewRecurringProfilePayment();
//unit test
var mockNotificationSender = new Mock<IMarkAsSuccessfulNotificationSender>();
var mockCommandHandler = new Mock<IDbCommandHandler<RecurringPaymentMarkAsSuccessfulCommand>>();
var classUnderTest = new RecurringProfileMarkLastPaymentAsSuccessful(mockCommandHandler.Object, mockNotificationSender.Object);
classUnderTest.MarkAsSuccessful(payment.RecurringProfile);
mockCommandHandler.Verify(x=>x.Handle(It.IsAny<RecurringPaymentMarkAsSuccessfulCommand>()), Times.Once());
mockNotificationSender.Verify(x=>x.SendNotification(payment), Times.Once());
}
问题出在线路上:
mockCommandHandler.Verify(x=>x.Handle(It.IsAny<RecurringPaymentMarkAsSuccessfulCommand>()), Times.Once())
这验证调用了 .Handle()
方法。然而,这对于测试来说还不够——这个 .Handle()
接受一个命令参数,它有一个属性——Payment
。我想验证此参数是否确实与 payment
变量匹配。
这可能吗,还是某些代码设计存在问题?
最佳答案
您可以提供谓词进行参数验证:
mockCommandHandler.Verify(x =>
x.Handle(It.Is<RecurringPaymentMarkAsSuccessfulCommand>(c => c.Payment == payment))
, Times.Once());
关于c# - 使用 Moq 验证具有正确命令参数的 CommandHandler 方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12961380/
我有一个问题,我希望我的处理程序使用从处理程序生成的数据: UpdateUserProfileImageCommandHandlerAuthorizeDecorator UpdateUserProfi
我有一个问题,我希望我的处理程序使用从处理程序生成的数据: UpdateUserProfileImageCommandHandlerAuthorizeDecorator UpdateUserProfi
我尝试使用命令 DTO,但无法识别他的处理程序。当我记录 DTO 时,它是一个没有 CreateUserCommand 签名的简单对象 {...}。 这是我的 Controller : async i
我是 C# 的(非常)新手,我正在尝试用这种语言实现现有的应用程序元模型。在此元模型中,“菜单”表包含表单和操作的组合,指示对于每个表单,哪些操作应该可用。 然后我可以使用这个“菜单”数据源在运行时构
我想在命令处理程序中使用命令列表,但永远不会调用相应的函数。 getabList = ["getab"] for x in range(0, 31): getabList.append("ge
在我的开发团队中,我们正在使用 this article 中描述的 CQRS 模式并使用推荐的 DI 容器:Simple Injector (双关语)。 这是我们当前的项目结构: 01 WebApp
我在最近的项目中使用了 CQRS 模式,并在我的 DAL 中首先使用了 EF 代码,所以我定义了一些通用的 CommandHandlers插入/更新/删除: public class InsertCo
我有以下测试用例: [Test] public void MarkAsSuccessfulTest() { //setup data var p
我一直在阅读有关使用 Command 对象来表示我们的域公开的用例,以及使用 Command Handler 对象来处理这些命令的内容。 例如: 注册用户命令 RegisterUserCommandH
我目前正在使用 Axon 4.2,并且我有一个聚合(Customer),它在其 @CommandHandlers 中使用注入(inject)的服务(CustomerService) 方法。 下面显示了
所以我试图了解 axon 3.4 中的分布式命令总线。我有一个用例,当发送某个命令时,聚合会发送一个启动传奇的事件,该传奇会发送 2 个命令,以保持发送到 2 个不同服务的数据处于一致状态。 现在棘手
我是一名优秀的程序员,十分优秀!