欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > (八)RestAPI 毛子(Unit Testing/Integration)

(八)RestAPI 毛子(Unit Testing/Integration)

2025/4/30 5:04:49 来源:https://blog.csdn.net/weixin_42067536/article/details/147581137  浏览:    关键词:(八)RestAPI 毛子(Unit Testing/Integration)

文章目录

  • 项目地址
  • 一、Unit Testing
    • 1.1 创建X unit 测试项目
      • 1. 创建项目目录
      • 2. 管理包
    • 1.2 创建CreateEntryDtoValidator测试
    • 1.3 创建CreateEntryDtoValidator测试
  • 二、Integration test
    • 2.1 创建Integration test环境
      • 1. 安装所需要的包
    • 2.2 配置基础设置
      • 1. 数据库链接DevHabitWebAppFactory
      • 2.创建测试共享类IntegrationTestCollection
      • 3. 注入登录用户
    • 2.3 添加测试用例
      • 1. 测试用户创建
      • 2. 测试添加Habits
    • 2.4 测试外部服务/微服务
      • 1. 安装所需要的包
      • 2. 修改DevHabitWebAppFactory
      • 3. 修改github的网址到配置里


项目地址

  • 教程作者:
  • 教程地址:
  • 代码仓库地址:
  • 所用到的框架和插件:
dbt 
airflow

一、Unit Testing

  • 适合单元测试的代码

在这里插入图片描述

1.1 创建X unit 测试项目

1. 创建项目目录

  • 创建测试
    在这里插入图片描述
  • 目录
    在这里插入图片描述

2. 管理包

  1. 修改Packages.props
    在这里插入图片描述
  2. 修改项目本身的包,并且添加项目引用到api项目
<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><IsPackable>false</IsPackable></PropertyGroup><ItemGroup><PackageReference Include="coverlet.collector" /><PackageReference Include="Microsoft.NET.Test.Sdk" /><PackageReference Include="xunit" /><PackageReference Include="xunit.runner.visualstudio" /></ItemGroup><ItemGroup><ProjectReference Include="..\DevHabit\DevHabit.Api\DevHabit.Api.csproj" /></ItemGroup><ItemGroup><Using Include="Xunit" /></ItemGroup></Project>
  1. 在api的项目配置中添加,我们就可以引用internal 类型在Unitest里
    在这里插入图片描述

1.2 创建CreateEntryDtoValidator测试

  • 创建CreateEntryDtoValidatorTests用来测试
    在这里插入图片描述
namespace DevHabit.UnitTests.Validators;
public class CreateEntryDtoValidatorTests
{private readonly CreateEntryDtoValidator _validator = new();[Fact] // 用来定义不带参数的独立测试public async Task Validate_ShouldSucceed_WhenInputDtoIsValid(){// Arrangevar dto = new CreateEntryDto{HabitId = Habit.NewId(),Value = 1,Date = DateOnly.FromDateTime(DateTime.UtcNow)};// ActValidationResult validationResult = await _validator.ValidateAsync(dto);// AssertAssert.True(validationResult.IsValid);Assert.Empty(validationResult.Errors); //通过验证,错误列表为空}[Fact]public async Task Validate_ShouldFail_WhenHabitIdIsEmpty(){// Arrangevar dto = new CreateEntryDto{HabitId = string.Empty,Value = 1,Date = DateOnly.FromDateTime(DateTime.UtcNow)};// ActValidationResult validationResult = await _validator.ValidateAsync(dto);// AssertAssert.False(validationResult.IsValid); //验证失败ValidationFailure validationFailure = Assert.Single(validationResult.Errors); //检查错误列表里应该有且只有一个错误Assert.Equal(nameof(CreateEntryDto.HabitId), validationFailure.PropertyName); //验证这个错误是针对 HabitId 字段的}
}

1.3 创建CreateEntryDtoValidator测试

  • 为加密服务创建测试

public sealed class EncryptionServiceTests
{private

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词