- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我刚刚开始测试 MediatR
清理我们大量涉及的网络 Controller 。实现它自己的功能一点也不难,但我在测试方面遇到了一些困难。
我从一个用于取消订单的 Controller 方法开始。
当订单被取消时,我们在哪里
所有这些都是在 Controller 方法内部触发的,使 Controller 依赖于多个不同的服务。测试时,我们必须模拟每个部分以隔离我们想要测试的行为。
我用 MediatR
实现它的方法是从 Controller 方法发出一个 CancelOrder
查询。然后我制作了一个 CancelOrderHandler
负责存储“已取消”标志。
使用自定义 MediatorPipeline
实现,如果 CancelOrderHandler
没有抛出任何异常,我会发出一个 OrderCancelled
通知。
我有两个用于此通知的处理程序:OrderCancelledAuditLogHandler
和 OrderCancelledNotificationHandler
。第一个负责审核日志,第二个负责发送通知。
每个处理程序都易于测试。但是我怎样才能测试所有东西是否“适合在一起”呢?我想确保当订单被取消时,审计日志和通知确实得到处理。在我的测试执行期间(数据库写入和电子邮件发送),所有处理程序都会做我真正不想做的事情,而且我不热衷于全面的端到端集成测试。
有什么想法吗?
最佳答案
我正在处理同样的问题。我倾向于单独测试处理程序中使用的每个组件,然后构建它,但还不能 100% 确定,我测试请求和处理程序的方式与 Bogard 先生测试的方式相同GitHub 上的 Mediatr 项目
关于c# - 如何使用 MediatR 进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38297118/
我已经使用 MediatR 尝试了 CQRS 模式,并且我喜欢应用程序正在转换的干净状态。 在我见过和使用过的所有例子中,我总是这样做 await Mediator.Send(command); 查询
我正在尝试在 .NET Framework 4.6.2 中使用 Autofac 运行 MediatR。 我的注册: public class MediatorModule : Autofac.Modu
有谁知道如何在控制台应用程序中实现 MediatR,以使用 _mediatr.Send(obj) 语法调用处理函数。我正在使用 .Net 6 框架。感谢您的帮助。 最佳答案 首先,您必须安装这些包:
如果我发送 HTTP Get 请求: /api/Company/1 我有一个 OwinMiddleware我在哪里使用 context确定path和 IAsyncRequest 的 json 内容.
我在应用程序中使用 MediatR 和 CQRS。以下两条语句存在于很多模块中,在应用程序中可能会被并发调用(这是一个blazor应用程序)。 await Mediator.Send(new AddI
如何设置 PipelineBehavior 的优先级?我有 3 个管道。我想先执行 AuthorizationPipeline。如果 AuthorizationPipeline 抛出任何 Securi
您好,我已经使用这种带有管道行为的 Mediator CQRS 模式有一段时间了,但现在我遇到了一个问题,即 TResponse 和 TRequest 的通用实现还不够。因此,我试图了解为两个非常具体
我正在使用 Mediatr 开发 ASP.NET Core 2.2 Web API 应用程序。 我有一个看起来像的处理程序 - public class MyQueryHandler : IReque
在查询中对当前用户建模的最佳方法是什么?我正在创建一个 Razor 页面应用程序。在执行查询和命令时,我需要能够附加当前用户。有推荐的方法吗? 最佳答案 下面的方法对我很有效,因为我让用户进入了我的
在 MediatR 的文档中说: Containers that support generic variance will dispatch accordingly. For example, yo
我正在使用 MediatR具有以下类: public class GetPostsRequest : IRequest> { public Int32 Age { get; set; } } pu
我在我的 web api 2 项目中使用 Mediatr 4。与 FluentValidation 和 Unity 一起,我一直在添加管道行为来验证我的请求。 public class Validat
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 3 年前。 Improve this qu
我是 MediatR 的新手,尝试使用管道行为进行请求验证,如果发生任何错误,我遇到的所有示例都会抛出 ValidationException。 下面的代码是验证管道的示例: public class
我意识到我看到了(非常相似的)问题,但这似乎与通常提出的问题略有不同。 我得到了这个通知/通知处理程序 public class GenericEvent : INotification {
我正在研究 CQRS 和 MediatR 库,试图学习一些最佳实践。我遇到的一个问题是命令/查询处理程序中的代码重复。我想知道在处理程序之间共享逻辑的最佳方式是什么。 例子:我有一个定义 ID 属性的
如何让我的 MediatR 通知处理程序触发并忘记? 我的示例代码: public class BackupDatabase : INotification {} public class Backu
我想缓存一些来自 CommandsHandlers 的响应。 我已经使用 IPipelineBehaviour 做到了这一点,但我的请求中只有 5% 确实必须有缓存,而其他 95% 必须跳过此管道。有
我只想装饰一个 MediatR 处理程序。我尝试使用 Behaviours,但 Behaviors 为每个实现 IRequestHandler 的处理程序注入(inject)了装饰器。 public
我尝试使用CQRS制作.NET Core API,但由于MediatR错误而无法构建它: System.AggregateException:'某些服务无法构造(验证服务描述符'ServiceType
我是一名优秀的程序员,十分优秀!