从 TDD 到 DDD:构建 .NET Core Web API - 第 1 部分
大家好!
好久不见了。
你准备好迎接另一场史诗般的冒险了吗?
这次,我们将使用 xUnit 遵循 TDD(测试驱动开发)步骤,直至 DDD(领域驱动设计)结构,构建一个完整的 .NET Core Web API。
完整的项目可以在这里找到:https://github.com/lucianopereira86/CRUD-NetCore-TDD
技术
- Visual Studio 2019
- .NET 核心 3.1.0
- xUnit 2.4.0
- Microsoft.EntityFrameworkCore 3.1.0
- FluentValidation 8.6.0
主题
测试驱动开发 (TDD)
什么是 TDD?
它的意思是测试驱动开发,它包括在创建类、项目、验证和其他层之前为应用程序的核心功能编写单元测试。
在开发过程中,将有一个包含三个步骤的循环:红步、绿步和重构。红步需要代码在执行
时失败,即使没有编译。绿 步包括成功的编译以及单元测试所期望的结果。 重构步骤将代码重构为新的功能,例如新的类或模块。 通过这个循环,您将清楚地了解程序可能存在的所有故障和确定性。问题是它需要大量的时间来开发。
项目结构
最初,我们的解决方案将有 3 层:Web API、Infra 和 Test。
Web API 层将包含控制器。
基础层将负责存储库和表模型。
测试层将包含其他层中要构建的每个功能的单元测试。
现在,让我们创建一个解决方案!
打开 Visual Studio 2019,创建一个新的 .NET Core Web 应用程序项目,并将其命名为“CRUD-NETCore-TDD”。选择 API 模板并取消选中 HTTPS 选项:
默认的 .NET Core Web API 将会创建。
删除“Controllers/WeatherForecastController.cs”和“WeatherForecast.cs”文件。在解决方案中添加一个名为“CRUD-NETCore-TDD.Infra”的 C# .NET Core 类库项目。同时删除“Class1.cs”文件。
解决方案将如下所示:
在解决方案中添加一个 .NET Core xUnit 测试项目,并将其命名为“CRUD-NETCore-TDD.Test”。删除“UnitTest1.cs”文件。
解决方案将如下所示:
从 Infra 项目添加对 Web API 项目的引用,并从其他项目添加对 Test 项目的引用。
解决方案如下所示:
下一个
让我们构建测试项目。
文章来源:https://dev.to/lucianopereira86/from-tdd-to-ddd-building-a-net-core-web-api-part-1-3964