当前位置: 首页 > news >正文

C#-创建用于测试的父类StartupBase用于服务注入

当写完C#代码,需要对某个方法进行测试。

创建一个XXXTests.cs文件之后,发现需要注入某个服务怎么办?

再创建一个StartupBase.cs文件:

public abstract class StartupBase
{public IConfiguration Configuration { get; }public IServiceCollection Services { get; }public IServiceProvider ScopeProvider { get; }public StartupBase(){var configurationRoot = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json", false).Build();Configuration = configurationRoot;Services = new ServiceCollection();ScopeProvider = Services.BuildServiceProvider();}
}

然后把原先需要使用的appsetting.json弄进来。

如果没有,自己创建一个:

{"Env": "开发环境","Logging": {"LogLevel": {"Default": "Information","Microsoft": "Warning"}},"AllowedHosts": "*","ConnectionStrings": {"SQLConnection": ""},"CustomInfo":{}
}

记得属性改一下:

然后在自己创建的Test类中,继承StartupBase,如下:

[TestClass()]
public class SFOpenClientTests : StartupBase
{[TestMethod()]public void LogisticsTest(){var services = base.Services;var configure = base.Configuration;var scopeProvider = base.ScopeProvider;//你的逻辑代码}
}

这样就能拿到Services、Configuration、ScopeProvider。

想用哪个用哪个,没有的就到StartupBase里面注入就行。

目录结构参考如下:

然后就可以快乐地【调试测试】

http://www.lryc.cn/news/246216.html

相关文章:

  • JMeter之压力测试——混合场景并发
  • Python入门04字符串
  • vue3(四)-基础入门之 fetch 与 axios
  • 2016年五一杯数学建模C题二孩政策问题解题全过程文档及程序
  • 学习c#的第二十四天
  • ELK企业级日志分析平台——logstash
  • laravel8中常用路由使用(笔记四)
  • 理解 <script> 标签的 defer 和 async 属性
  • sql中group by和having的使用
  • 用python自行开发的流星监控系统meteor_monitor(第二篇)
  • Slf4j使用Logback时,Logback如何初始化
  • css之svg 制作圆及旋转
  • 学习.NET验证模块FluentValidation的基本用法(续1:其它常见用法)
  • lv11 嵌入式开发 UART实验 11
  • Ubuntu22.04下打包发布Qt5.15应用程序的方法
  • 初级JVM
  • MySQL数据库 编程入门
  • 6.golang函数
  • 软件可靠性测试常见的方法
  • C/C++字节对齐
  • 【Android知识笔记】性能优化专题(四)
  • DC电源模块的散热措施
  • uniapp H5、小程序、APP端自定义不同运行环境(开发、测试、生产)、自定义条件编译平台、以及动态修改manifest.json值讲解
  • centos 显卡驱动安装(chatglm2大模型安装步骤一)
  • 05_属性描述符
  • vue day2
  • 四川劳动保障杂志社四川劳动保障编辑部四川劳动保障杂志2023年第10期目录
  • python数据类型
  • 大数据-之LibrA数据库系统告警处理(ALM-37004 Datanode主备不同步或者断连)
  • 带你用uniapp从零开发一个仿小米商场_2.创建空白项目及公共样式引入