C#_Unit Testing 一(xUnit)

article/2025/10/20 9:34:00

一、前言

在VS中新建一个xunit的项目,该项目中已经自动安装了一些Nuget包,其中一个关键的就是xunit,https://xunit.net/。
在这里插入图片描述

同时,在同一个解决方案下我们也新建了一个类库,这个类库就是需要被测试的。这里提一点,一般情况下,我们是将单元测试项目单独新建一个项目的,不会在被测试项目中写单元测试。所以在单元测试项目中需要引用一下被测项目。
在这里插入图片描述
值得一提的是项目命名、类名和方法名要规范,一般就是在被测项目名称后加一个“Test”后缀。
在这里插入图片描述

二、示例

需要测试的类库中就一个类,定义了四个方法。

public class SimpleCalculate
{public int Add(int a, int b) => a + b;public int Minus(int a, int b) => a - b;public int Multiply(int a, int b) => a * b;public float Divide(int a, int b) => (a * 1.0f) / b;
}

在单元测试项目中我们也同样写了一个类。

    public class SimpleCalculateTest{}

在上面这个类中我们先写一个方法,暂且可以不用理解为什么这么写

public class SimpleCalculateTest
{[Fact]public void AddTest(){SimpleCalculate simpleCalculate = new SimpleCalculate();var res = simpleCalculate.Add(2, 3);Assert.Equal(5, res);}
}

这个单元测试方法就写完了,那么我们这么执行这个测试呢???有两种方法

  • 在VS中运行:

    右键点击项目,可以看到一个运行测试的菜单。

    打开测试资源管理器窗口,可以看到所有的单元测试的状态,推荐使用这个。

  • 命令行。(暂不介绍)
    在这里插入图片描述

[Fact]特性

上面我们介绍的一种写法就是[Fact]特性,表示测试方法是无参。如果测试方法需要参数呢?

[Theory]特性

    [Theory][InlineData(1, 3)][InlineData(2, 3)][InlineData(3, 3)]public void MultiplyTest(int a,int b){SimpleCalculate simpleCalculate = new SimpleCalculate();var res = simpleCalculate.Add(a, b);Assert.Equal(5, res);}

需要使用[Theory]特性标记,并且使用[InlineData(1, 3)]注入参数。

Running Tests in Parallel

没有搞懂。。。。


http://chatgpt.dhexx.cn/article/8XXxIKsM.shtml

相关文章

在.NET开发中的单元测试工具之(2)——xUnit.Net

在上一篇《在.NET开发中的单元测试工具之(1)——NUnit》中讲述了如何使用NUnit在.NET开发中进行单元测试以及NUnit的一些缺点,今天将讲述如何使用xUnit.Net来进行单元测试。 xUnit.Net介绍 xUnit.net的创造者的创造者是Jim Newkirk和Brad Wilson从包括NUnit及其它单…

单元测试中Assert详解-xUnit

前一篇:详谈单元测试-xUnit 简介 Assert 是基于代码的返回值、对象的最终状态、事件是否发生等情况来评估测试的结果。Assert 的结果可能是 Pass 或者 Fail。如果所有的 Asserts 都通过了,那么整个测试就通过了。如果任何 Asserts 失败了,那…

xUnit-Moq框架

基于上一次的单元测试-xUnit进行 Models文件夹 Staff类修改为: public class Staff { public int Id { get; set; } public string Name { get; set; } public string State { get; set; } public int Age { get; set; } } 创建一个IRepository接口…

xUnit.net入门

xUnit.net是一个免费的、开源的、以社区为中心的.net框架单元测试工具。 本文在Win10Visual Studio2022-Preview下,创建一个简单的.Net Framework4.8的xUnit.net测试项目。 1、新建项目 打开VS2022,新建项目,弹出“创建新项目”窗口&#…

xUnit总结--学习笔记

xUnit.net是针对.NET Framework的免费,开源,以社区为中心的单元测试工具。 自动化测试的优点# 可以频繁的进行测试可以在任何时间进行测试,也可以按计划定时进行,例如:可以在半夜进行自动化测试比人工测试速度快可以更…

Xunit入门

本节记录Xunit单元测试的入门知识,以2.1版本作为入门示例。 1、新建一个类库项目 2、在Nuget中搜索xunit,这里我们只选xUnit.net和xunit.runner.visualstudio包。 其中xUnit是框架,而xunit.runner.visualstudio是vs插件包,让我们可…

3. 使用xUnit进行单元测试

实现.NET Core时,xUnit可用于创建单元测试,.NET Core团队使用了该产品。xUnit是一个开源实现方案,创建NUnit 2.0的开发人员创建了它。现在,.NET Core命令行界面支持MSTest和xUnit。 提示: xUnit的文档可参阅https://…

详谈单元测试-xUnit

简介 xUnit.net 是针对 .NET 的免费,开源单元测试框架,可并行测试、数据驱动测试。测试项目需引用被测试项目,从而对其进行测试,测试项目同时需要引用 xUnit。测试编写完成后,用 Test Runner 来测试项目,T…

01 如何利用xUnit框架对测试用例进行维护-xUnit简介及基本使用方法(基于Junit4)

1、xUnit是什么 先看Wikipedia上的解释 xUnit是一系列测试框架的统称,最开始来源于一个叫做Smalltalk的SUnit框架,现在各种面向对象的语言,如Java、Python的鼻祖就是Smalltalk,后来这些语言都借助了Sunit框架的理念,有…

【IoT】物联网NB-IoT之移动oneNET平台硬件接入

主要实现开发者实际的终端设备在 OneNET 平台上的创建、连接和数据交互。在完成用户注册和产品创建后,即可根据相关所创建产品的协议类型选择相应的硬件接入的开发。 接入流程可参见下图: 1、LWM2M 协议 - NB-IoT 测试接入流程分为平台域和设备域&…

【安装工具】【ARM-DS-5】成功破解ARM DS-5 v5.26.0 + 配置高通MDM9026芯片的demo==》成功编译得到demo.bin文件

Note:Win7 64环境 安装破解ARM DS-5 v5.26.0 http://blog.csdn.net/qq_27295631/article/details/68582582 验证破解成功 安装MinGW http://blog.csdn.net/qq_27295631/article/details/68582582 设置系统属性-环境变量(bin/lib/inc) ARMBIN C:\Program Files…

把乌托邦变成细密画:华为如何思考家居IoT?

奥尔罕帕穆克凭借他的名作《我的名字叫红》一举跃入20世纪文学史,而这部广为人知的作品也让我们知道了一种绘画史上非常奇特的艺术形式:细密画。 这种流传自希腊罗马,盛行于波斯帝国的艺术样式,特点是要在书的扉页、边框&#xff…

MDM9607平台 Secure Boot调试记录

本博客只涉及技术问题,尊重原创,不涉及商用问题。 目录 一 概述... 4 二 原理及流程... 4 2.1 安全启动原理... 4 2.2 安全启动结构图:... 5 2.3 安全启动流程图... 5 三 证书简介... 6 四 签名镜像格式... 7 五 熔丝熔断... 7 5.1 熔断使能... 7 5.2 熔断过程..…

MDM9205简介

大家好,今天小白给大家介绍下高通新推出的下一代物联网专用调制解调器Qualcomm 9205,欢迎一起学习交流。 去年12月17日,高通宣布推出下一代物联网(IoT)专用调制解调器Qualcomm 9205。全新Qualcomm 9205 LTE调制解调器…

基于机智云gokit4.0(G)和MDM9206的 小型智能气象站

项目介绍 小型气象站广泛应用于气象、农业、环境检测和治理等领域。小型气象站对空气温湿度、光照、风速、风向、雨量、土壤湿度、蒸发量、大气压力等环境气象要素进行全天候现场检测。通过更换不同的传感器,该装置也可用于楼宇环境监控、安防、智慧农业等领域。 由…

MWC2018 机智云发布gokit4.0G全栈IoT开发套件,支持高通MDM9206

MWC2018 机智云发布gokit4.0G全栈IoT开发套件,支持高通MDM9206 NB-IoT/eMTC 继2月14日Qualcomm高通宣布,推出面向Qualcomm MDM9206LTE IoT全球多模调制解调器的全新LTEIoT软件开发包(SDK),并已预集成机智云物联网云平…

【沙龙】基于MDM9206芯片的gokit4(G)的应用实操

导读 紧跟前沿通信技术、Get最新开发技能,高通Qualcomm&机智云&移远通信高级工程师手把手教开发:通过GoKit4(G)MDM9206快速接入机智云,4小时掌握高通MDM9206 C-IoT SDK实现不同IoT应用场景的方法,实现NB-IoT产品原型设计…

在线公开课】基于MDM9206的GoKit4(G)在线公开课

【在线公开课】基于MDM9206的GoKit4(G)在线公开课 基于Qualcomm C-IoT SDK的物联网开发以及GoKit4应用开发指导 MDM9206 LTE IoT调制解调器是一款专为支持全球多模功能而打造的解决方案,它可支持eMTC(Cat M1)、NB-IoT(Cat NB-1&…

MDM9206简介

MDM9206简介 大家好,今天小白给大家介绍一下当前很火热的一款多模多频的高通的NB-IOT芯片,欢迎一起讨论学习。 1. MDM9206芯片的发展背景 接下来我们看看该款具有代表性的多模多频NB-IOT芯片是基于什么样的大背景下产生的? 从2G、3G如今的…