摘要: 引言 在上一章节我们实战了在Asp.Net Core中的项目实战,这一章节讲解一下如何测试Asp.Net Core的中间件。 TestServer 还记得我们在集成测试中提供的TestServer吗? TestServer 是由 Microsoft.AspNetCore.TestHost 包提供的。 阅读全文
posted @ 2024-04-22 08:30 董瑞鹏 阅读(546) 评论(0) 推荐(7) 编辑
摘要: 引言 集成测试可在包含应用支持基础结构(如数据库、文件系统和网络)的级别上确保应用组件功能正常。 ASP.NET Core 通过将单元测试框架与测试 Web 主机和内存中测试服务器结合使用来支持集成测试。 简介 集成测试与单元测试相比,能够在更广泛的级别上评估应用的组件,确认多个组件一起工作以生成预 阅读全文
posted @ 2024-04-19 08:00 董瑞鹏 阅读(656) 评论(2) 推荐(4) 编辑
摘要: 引言 上一章我们介绍了在xUnit单元测试中用xUnit.DependencyInject来使用依赖注入,上一章我们的Sample.Repository仓储层有一个批量注入的接口没有做单元测试,今天用这个示例来演示一下如何用Bogus创建模拟数据 ,和 EFCore 的种子数据生成 Bogus 的优 阅读全文
posted @ 2024-04-17 08:30 董瑞鹏 阅读(390) 评论(0) 推荐(4) 编辑
摘要: 引言 上一篇我们创建了一个Sample.Api项目和Sample.Repository,并且带大家熟悉了一下Moq的概念,这一章我们来实战一下在xUnit项目使用依赖注入。 Xunit.DependencyInjection Xunit.DependencyInjection 是一个用于 xUnit 阅读全文
posted @ 2024-04-15 08:30 董瑞鹏 阅读(299) 评论(1) 推荐(2) 编辑
摘要: 引言 上一章节介绍了 TDD 的三大法则,今天我们讲一下在单元测试中模拟对象的使用。 Fake Fake - Fake 是一个通用术语,可用于描述 stub或 mock 对象。 它是 stub 还是 mock 取决于使用它的上下文。 也就是说,Fake 可以是 stub 或 mock Mock - 阅读全文
posted @ 2024-04-12 09:00 董瑞鹏 阅读(427) 评论(4) 推荐(3) 编辑
摘要: 引言 在我们上一篇文章了解了单元测试的基本概念和用法之后,今天我们来聊一下 TDD(测试驱动开发) 测试驱动开发 (TDD) 测试驱动开发英文全称是Test Driven Development 简称 TDD。 根据 UncleBob 的 TDD 描述总结 我们先创建一个测试项目 直接在 VS 创建 阅读全文
posted @ 2024-04-07 09:00 董瑞鹏 阅读(384) 评论(0) 推荐(1) 编辑
摘要: 引言 在现代化的软件开发中,单元测试和集成测试是确保代码质量和可靠性的关键部分。ASP.NET Core 社区内提供了强大的单元测试框架,xUnit 是其中之一,它提供了简单、清晰和强大的测试功能,编写单元测试有许多优点;有助于回归、提供文档及辅助良好的设计。下面几节我们来深入浅出探讨如何使用 xU 阅读全文
posted @ 2024-04-03 10:58 董瑞鹏 阅读(905) 评论(4) 推荐(7) 编辑
摘要: 前言 .NET Feature Management 是一个用于管理应用程序功能的库,它可以帮助开发人员在应用程序中轻松地添加、移除和管理功能。使用 Feature Management,开发人员可以根据不同用户、环境或其他条件来动态地控制应用程序中的功能。这使得开发人员可以更灵活地管理应用程序的功 阅读全文
posted @ 2024-03-27 09:42 董瑞鹏 阅读(1827) 评论(6) 推荐(20) 编辑
摘要: 前言 本文的主题是 Visual Studio 调试 NuGet 包,以及符号包的概念,如何去发布一个 NuGet 包,让我们的 NuGet 包支持 SouceLink,这些都是我们开发中比较容易忽视的内容,但是熟悉了以后可以让我们在调试中得心应手,也是开源项目开发的基础篇。 demo 源代码在文末 阅读全文
posted @ 2024-03-25 10:04 董瑞鹏 阅读(423) 评论(0) 推荐(7) 编辑
摘要: 前言 文本主要讲 MinimalApis 中的使用自定义IResultModel和系统自带IResult做响应返回值。 MinimalApis支持以下类型的返回值: string - 这包括 Task<string> 和 ValueTask<string> T(任何其他类型)- 这包括 Task<T 阅读全文
posted @ 2024-03-22 08:57 董瑞鹏 阅读(526) 评论(1) 推荐(3) 编辑
摘要: 前言 上一篇文章我们讲到了Scrutor第一个核心功能Scanning,本文讲解的是Scrutor第二个核心的功能Decoration 装饰器模式在依赖注入中的使用。 装饰器模式允许您向现有服务类中添加新功能,而无需改变其结构 Install-Package Scrutor 本文的完整源代码在文末 阅读全文
posted @ 2024-03-20 10:56 董瑞鹏 阅读(390) 评论(1) 推荐(4) 编辑
摘要: 前言 从.Net Core 开始,.Net 平台内置了一个轻量,易用的 IOC 的框架,供我们在应用程序中使用,社区内还有很多强大的第三方的依赖注入框架如: Autofac DryIOC Grace LightInject Lamar Stashbox Simple Injector 内置的依赖注入 阅读全文
posted @ 2024-03-19 08:38 董瑞鹏 阅读(1435) 评论(0) 推荐(7) 编辑
摘要: 前言 异常的处理在我们应用程序中是至关重要的,在 dotNet 中有很多异常处理的机制,比如MVC的异常筛选器, 管道中间件定义try catch捕获异常处理亦或者第三方的解决方案Hellang.Middleware.ProblemDetails等。MVC异常筛选器不太灵活,对管道的部分异常捕获不到 阅读全文
posted @ 2024-03-15 11:56 董瑞鹏 阅读(3032) 评论(2) 推荐(11) 编辑
摘要: 前言 作为开发人员,我们经常向应用程序添加新功能并修改当前的 Api。版本控制使我们能够安全地添加新功能而不会造成中断性变更。一个良好的 Api 版本控制策略可以清晰地传达所做的更改,并允许使用现有 REST Api 的客户端在准备好时才迁移或更新他们的应用程序到最新版本。 哪些行为可能会造成 Ap 阅读全文
posted @ 2024-03-14 09:45 董瑞鹏 阅读(1517) 评论(6) 推荐(4) 编辑
摘要: 前言 在Asp.Net Core 6 推出了最小 Api(MinimalApis)来简化WebApi的开发,在前后端分离的趋势下越来越多的后端服务只提供Api接口,但是用Controller的开发模式会引入MVC的架构,MinimalApis的出现就是来减少框架的依赖,让 Api 的开发更加简洁,并 阅读全文
posted @ 2024-03-12 11:02 董瑞鹏 阅读(70) 评论(0) 推荐(0) 编辑