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

C# 使用MSTest进行单元测试

目录

写在前面

代码实现

执行结果


写在前面

MSTest是微软官方提供的.NET平台下的单元测试框架;可使用DataRow属性来指定数据,驱动测试用例所用到的值,连续对每个数据化进行运行测试,也可以使用DynamicData 属性来指定数据,驱动测试用例所用数据的成员的名称、种类(属性、默认值或方法)和定义类型(默认情况下使用当前类型)

代码实现

新建目标类DataChecker,增加待测试的方法,内容如下:

    public class DataChecker{public bool IsPrime(int candidate){if (candidate == 1){return true;}return false;}public int AddInt(int first, int second){int sum = first;for (int i = 0; i < second; i++){sum += 1;}return sum;}}

 新建单元测试类UnitTest1


namespace MSTestTester.Tests;[TestClass]
public class UnitTest1
{private readonly DataChecker _dataChecker;public UnitTest1(){_dataChecker = new DataChecker();}[TestMethod][DataRow(-1)][DataRow(0)][DataRow(1)]public void IsPrime_ValuesLessThan2_ReturnFalse(int value){var result = _dataChecker.IsPrime(value);Assert.IsFalse(result, $"{value} should not be prime");}[DataTestMethod][DataRow(1, 1, 2)][DataRow(2, 2, 4)][DataRow(3, 3, 6)][DataRow(0, 0, 1)] // The test run with this row failspublic void AddInt_DataRowTest(int x, int y, int expected){int actual = _dataChecker.AddInt(x, y);Assert.AreEqual(expected, actual,"x:<{0}> y:<{1}>",new object[] { x, y });}public static IEnumerable<object[]> AdditionData{get{return new[]{new object[] { 1, 1, 2 },new object[] { 2, 2, 4 },new object[] { 3, 3, 6 },new object[] { 0, 0, 1 },};}}[TestMethod][DynamicData(nameof(AdditionData))]public void AddIntegers_FromDynamicDataTest(int x, int y, int expected){int actual = _dataChecker.AddInt(x, y);Assert.AreEqual(expected, actual, "x:<{0}> y:<{1}>", new object[] { x, y });}
}

执行结果

打开命令行窗口执行以下命令:

dotnet test

 符合预期结果

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

相关文章:

  • 基于Java (spring-boot)的宠物管理系统
  • 基于博弈树的开源五子棋AI教程[1 位棋盘]
  • Java Catching and Handling Exceptions(二)
  • 【HarmonyOS开发】ArkTs关系型和非关系型数据库的存储封装
  • Latex编译出来的pdf文件缺少参考文献和交叉引用
  • sql_lab靶场搭建以及存在的一些问题
  • Https接口调用问题
  • CSS自适应分辨率 amfe-flexible 和 postcss-pxtorem:大屏高宽自适应问题
  • SQL面试题挑战01:打折日期交叉问题
  • 三大主流前端框架介绍及选型
  • 云原生消息流系统 Apache Pulsar 在腾讯云的大规模生产实践
  • 【LeetCode刷题】--245.最短单词距离III
  • 数字化时代的智能支持:亚马逊云科技轻量应用服务器技术领先
  • 【智慧之窗】AI驱动产品探索
  • BBS项目--登录
  • Python---TCP服务端程序开发
  • 回归预测 | MATLAB实现GWO-DHKELM基于灰狼算法优化深度混合核极限学习机的数据回归预测 (多指标,多图)
  • 听GPT 讲Rust源代码--src/tools(15)
  • python可以做小程序研发嘛,python能做微信小程序吗
  • 创建型模式 | 单例模式
  • 【无标题】欢迎使用Markdown编辑器
  • Postgresql中PL/pgSQL的游标、自定义函数、存储过程的使用
  • 【IDEA】Intellij IDEA相关配置
  • GD32移植STM32工程(因为懒,所以移植)
  • mt5和mt4交易软件有什么区别?
  • 零刻EQ12 N100 双2.5G网口 All In One新手教程
  • 竞赛保研 基于Django与深度学习的股票预测系统
  • 听GPT 讲Rust源代码--src/tools(16)
  • Leetcoed 双指针
  • 关于“Python”的核心知识点整理大全31