首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

重温《单元测试艺术》,总结常用知识点

我编写单元测试时,我会对代码更有信心。测试代码更易于添加功能或修复 Bug,因为代码发生更改时,单元测试起着安全网作用。 前几个月重温了单元测试艺术。...选择单元测试框架 《单元测试艺术》书中推荐NUnit,VS2019新建单元测试项目只有MSTest V2、NUnit和xUnit三种。...微软自己项目也不一定会使用MSTest,例如CoreFX就在用xUnit。 不过我更喜欢MSTest V2,因为从旧MSTest升级过来几乎没有学习成本,也不用向上司解释为什么要换框架。...Stub(存根)和Mock(模拟对象) 外部依赖项常常是单元测试借口,如文件系统、网络服务甚至系统时间,开发者往往说没法控制而逃避写单元测试。这种情况可以使用stub或mock破除依赖。...前面定义Stub和Mock都使用了Fake-前缀,因为避免使用"mock"和"stub",那么这个类对象就可以具有两种行为方式,以后再不同测试重用。 7.

1.5K31

dotnetCampus.UITest.WPF 一个支持中文用例界面单元测试框架

本文来安利大家一个支持使用中文做用例名 WPF 界面 UI 单元测试框架 卖点 有没有觉得命名太难?有没有觉得单元测试命名更难?没错,这是一个业界大问题。...很多团队都会因为单元测试用例函数命名太难而让团队成员不喜欢写单元测试,或者说代码审查时候觉得对方写单元测试用例名有语法错误,又或者是改到单元测试发现函数命名因为自己英文能力有限而看不懂 本文安利给大家...使用它,你可以用契约方式来描述一个又一个测试用例,这些测试用例将在单元测试运行结束后显示单元测试控制台或 GUI 窗口中。...本 UI 单元测试框架不提供面向测试辅助类型方法,例如模拟鼠标点击等功能,如需这些功能,还请使用第三方库进行辅助 使用方法 此单元测试框架是基于 MIT 最友好开源协议, GitHub 上完全开源...,请看 https://github.com/dotnet-campus/CUnit/ 此单元测试框架是 MSTest v2 一个扩展,使用时,你需要创建一个 MSTest 单元测试项目,在此单元测试项目里面额外安装

94630
您找到你想要的搜索结果了吗?
是的
没有找到

VisualStudio单元测试

VisualStuio测试资源管理器、CodeLens和ReSharper 上一篇文章重温了《单元测试艺术》里提到单元测试技术及原则。...这篇文章实践使用VisualStudio 2019进行单元测试VisualStudio通常都会使用“测试资源管理器”进行单元测试。 ?...Live Unit Testing 在编辑代码时自动执行所有受影响测试,确保所做更改不会中断测试。 指示单元测试是否充分覆盖代码,并显示未被单元测试覆盖代码。...解决方案是创建一个包含集成测试项目的解决方案,或者解决方案资源管理器右键单击想要排除每个测试项目,然后依次选择“实时测试” > “排除”,这样Live Unit Test就不会对这些项目进行测试...善用VisualStudio各种工具可以大大提升单元测试效率,不过基本上这些工具都只Enterprise版本中提供。 有趣MSTest自己也没有用Fakes,很多时候都是用moq。

3.7K50

使用 MSTestEnhancer 单元测试扩展,写契约就够了

这样方法多了也就难以读懂单元测试代码了。...不要紧,工具也能显示中文契约,Visual Studio 测试管理器和 ReSharper 测试结果页都支持显示这些中文契约。以下是 ReSharper 单元测试结果页视图: ?...每个契约按照方法名归类防止,测试结果一目了然。 参数化单元测试 有些契约需要更多值组合来验证正确性,那么可以契约测试用例后面添加参数。...}).WithArguments((2, 3), (10, 20)); 显示单元测试结果时,如果契约字符串中含有格式化占位符 {0}、{1} 等,会被自动替换为参数值。...异步单元测试 Test 方法传入每个 Action 都支持 async 关键字,并会在执行测试用例时等待异步操作结束。 额外黑科技 MSTest v2 支持嵌套类型单元测试

66110

.NET Core 3.0 单元测试与 Asp.Net Core 3.0 集成测试

但是,当我们代码无法进行单元测试时候,往往就是代码开始散发出坏味道时候。长此以往,将欠下技术债务。实践过程,技术债务常常会存在,关键在于何时偿还,如何偿还。 ?...上图说明了随着时间推移开发/维护难度变化。 测试框架选择 .NET Core ,提供了 xUnit 、NUnit 、 MSTest 三种单元测试框架。...有时我们会在多个测试方法中用到相同变量,熟悉重构我们会提取公共变量,并在构造器初始化。但是,这里我要强调是:测试,不要提取公共变量,这会破坏每个测试用例隔离性以及单一职责原则。...单元测试中常常会提到几个概念 Stub , Mock 和 Fake ,那么应用我们该如何选择呢? Moq4 ,使用 Moq4 模拟我们项目中依赖对象。...参考 打开视图 -> 测试资源管理器。 ? 点击运行,得到测试结果。 ? 至此,一个单元测试结束。

2.3K20

《从零开始学ASP.NET CORE MVC》:VS2017创建ASP.NET Core Web程序(三)

创建ASP.NET Core Web应用程序 如果您使用VS2019 请看 VS2019创建ASP.NET Core Web程序(三) 在这个视频我们将讨论 可用不同项目模板及其功能 预制项目模板有什么不同...Visual Studio2017创建新ASP.NET Core 项目 步骤1:Visual Studio 2017创建新asp.net Core项目 步骤2:Visual Studio单击文件...第3步:“新建项目”对话框,展开 “已安装”。然后展开“Visual C#”并 选择.NET Core 第4步:中间窗格,您将找到所有已安装项目模板。...例如,您将找到用于创建.NET控制台应用程序,类库,单元测试项目(使用MSTest,NUnit或xUnit框架),ASP.NET Core Web应用程序模板 。 第5步: ?...此屏幕显示可用于创建ASP.NET Core应用程序不同项目模板。 各个模板简单说明 空:名称暗示“空”模板包含任何内容。

2.7K30

dotnet 使用 MSTestRunner 将单元测试制作为独立可执行文件

这就限制了运行单元测试环境了,有时候开发者可能期望无 SDK 或开发环境下执行单元测试,这时就可以用到本文介绍 MSTestRunner 功能,将单元测试制作为独立可执行文件 将单元测试制作为可执行文件...可执行文件可以作为独立框架发布方式,如此可以一些纯净环境里面运行,或者是将单元测试打包分发给测试同事,请测试同事大批量设备上进行执行。...如此可见,将单元测试制作为可执行文件许多地方都有用武之地,如: 纯净系统环境运行 大批量设备统一执行 允许外置工具调试单元测试执行情况 以上 “允许外置工具调试单元测试执行情况” 一般指的是现有的性能调试工具...> 接着咱开始编写一个简单单元测试用来测试一下此方式行为...通过将单元测试构建为独立可执行文件,我就可以 UOS 上只做测试活,参与具体开发。

20010

为 IIncrementalGenerator 增量 Source Generator 源代码生成项目添加单元测试

本文属于 IIncrementalGenerator 增量 Source Generator 源代码生成入门系列博客,本文将和大家介绍如何为源代码生成项目添加单元测试 添加单元测试作用不仅可以用来实现通用单元测试提高质量功能...且定制给调试内容还可以存放起来作为单元测试内容,同时单元测试本身单元功能可以让单元测试项目里面存放不同多个方向测试内容,方便调试多个不同模块 为了方便博客描述,接下来我将创建一个简单 IIncrementalGenerator...\YawrofajuGekeyaljilay\YawrofajuGekeyaljilay.csproj" /> 以上单元测试项目和传统单元测试项目不同在于添加了以下这些额外引用库...).Assembly.Location) }, new CSharpCompilationOptions(OutputKind.ConsoleApplication)); 以上辅助方法作用就是可以让单元测试传入一段代码时...static void Main(string[] args) { } } } "); // 忽略其他代码 } } 通过以上代码就可以单元测试里面定义多个不同输入代码源

10810

对比MS Test与NUnit Test框架

[AssemblyInitialize] -- 定义测试Assembly初始化函数,每当这个Assembly测试函数被运行前,会被调用一次(Assembly第一个测试函数运行前会被调用)。...有兴趣可以看一下这篇帖子:5分钟实现VS2010整合NUnit进行单元测试。 当然,貌似最新版本VS2012,安装过NUnit之后,就可以不需要安装插件情况下, 运行NUnit测试。...2、运行时区别 看网上帖子讲,NUnit不是并行执行测试,所有的测试都是放在一个线程当中。 而MSTest每个测试都被放在单独线程当中。...而在MSTest,ClassCleanupAssemblyCleanup前执行,但是并不是最后一个测试完毕后马上执行。 4、NUnit支持测试继承,但是MSTest不支持。...MSTest vs. NUnit with Visual Studio 2010 & TDD 最后,这是最近总结学习一篇帖子,里面肯定有没有提到、或者错误地方。希望大家发现错误一起讨论。

3.4K20

将 WPF、UWP 以及其他各种类型旧 csproj 迁移成基于 Microsoft.NET.Sdk 新 csproj

ItemGroup> 这是我一个单元测试项目的...基于 .NET Framework 4.7.1,引用 MSTest v2测试 Walterlv.Demo 项目,引用了一个 .NET Framework 类库。 其依赖显示也非常简洁: ?...从对比我们就能明显看出新 csproj 文件优势: 文件小,易读易写 版本管理更容易解冲突 NuGet 包引用没有路径要求,这意味着开发者可以任意指定 NuGet 包位置 嵌套引用不需要重复指定...目前没有自动迁移方法,至少实际迁移过程,只有少数项目能够直接编译通过。由于以上我小伙伴给出了具体迁移方法,所以此处我只给出迁移思路。...比如,你可能放入项目的不止有 cs 文件,还有其他各种用途资源——你需要重新选中他们然后属性面板设置文件生成属性。

1.4K20

dotnet test

[-v|--verbosity ] [[--] ] dotnet test -h|--help 描述 dotnet test 命令用于在给定解决方案执行单元测试...执行显式还原有意义某些情况下,例如 Azure DevOps Services 持续集成生成,或在需要显式控制还原发生时间生成系统,dotnet restore 命令仍然有用。...有关更多信息,请参见以下资源: 使用 .runsettings 文件配置单元测试。 配置测试运行 -t|--list-tests 列出已发现测试,而不是运行测试。..." 在当前目录运行项目中测试,并将详细测试结果记录到控制台: dotnet test --logger "console;verbosity=detailed" 在当前目录下项目中运行测试,并报告测试主机发生故障时正在进行测试...下面介绍了常用单元测试框架支持属性: 测试框架 支持属性 MSTest FullyQualifiedName“属性”ClassNamePriorityTestCategory xUnit FullyQualifiedNameDisplayName

3K20

.NET Core 学习资料精选:入门

第一篇:.NET Core 学习资料精选:入门       介绍.NET历史、开源之路、基础、路由、依赖注入、HttpContext、cookie|session、HttpClient、gRPC、单元测试...如果需要进行旧项目升级,可以参考文章:《.NET项目迁移到.NET Core操作指南》 VS和.NET Core安装 VS2019安装教学 VS2019正式版注册码秘钥 修改nuget包默认存放路径,...上托管 ASP.NET Core 使用 Apache Linux 上托管 ASP.NET Core 单元测试 .NET Core 和 .NET Standard 单元测试最佳做法 使用 dotnet...test 和 xUnit .NET Core 中进行 C# 单元测试 使用 dotnet test 和 NUnit .NET Core 中进行 C# 单元测试 使用 dotnet test 和...MSTest .NET Core 中进行 C# 单元测试 使用 dotnet test --filter 进行选择性单元测试 ===================================

3.8K20

Newbe.Mahua 测试与调试

引入测试框架 .Net测试框架众多,主流MSTest、NUnit和XUnit。本教程选择XUnit进行演示。...Arrange(准备) Action(执行) 和 Assert(断言) // Arrange 对单元测试需要测试准备参数进行初始化 // Action...一个测试消息包含”收到回复”,另一个则不包含。...因此,要增加额外逻辑判断和单元测试,来确保这个BUG不会发生。真正勇士,自己就会动手。 最后 单元测试就是为了确保代码逻辑小范围内绝对正确开发行为,很有必要。...以上演示代码,均可以本项目代码仓库中找到。 调试 单元测试是开发阶段最初测试,但事实是,绝大多数的人更喜欢”跑一下看看”。因此调试,也就很有必要。

2.1K00

net core WebApi——使用xUnits来实现单元测试

MSTest,NUnit,xUint这三个让我稍微犹豫了下,不过三七二十八管他呢,随便来个吧,就选了xUnit,当然MSTest是官方,支持度应该高点儿,但是这不是我们该犹豫抉择地方。...,这里也就不一一说明了,感觉方法名起都挺明白,这里就不过多描述了,代码也有些测试示例,地址文末给出。...,我一直想一个问题,如果只是这种操作的话,那测试有何意义,但是后来发现,原来单元测试比我以为能做多得多,所以,学习是个不停行程,走多了,风景也就多了。...这里可以引入一个流程,我们测试自己工程时候,我们需要三步来做完单个测试。...小结 写到这里,基本上单元测试这块儿也简单了走了一遍,至于具体在业务如何实现,还是想着需要结合个小项目来实践下,东西走通个demo只能说明可行,走通不同体量工程才能说明可用,包括后续集成测试,压力测试

1.1K10

使用Visual Studio 2013进行单元测试--初级篇

5.单元测试项目中引用控制台项目,引用完毕后项目结构如下: ? 6.单元测试项目里面UnitTest1这个类名字取得太难看了,我们把名字改为ProgramTest,表明这是测试Program类。...如果没有上面的两个特性一个,编译生成是没有任何问题。但是VS不会把其作为一个【单元测试方法】。 9.“VS不把一个方法作为【单元测试方法】”是什么意思呢?...依次点击VS菜单栏【测试】--> 【窗口】-->【测试资源管理器】,可以打开测试资源管理器。 ? ? 10.测试资源管理器里面会显示当前解决方案里面的所有单元测试。...OK,按F6.就可以看到【测试资源管理器显示了【TestMethod1】: ? 11.我们要清楚我们创建单元测试初衷:是用工具帮助我们测试软件质量、稳定性、性能等等。...执行测试方法之一是:右键点击需要测试单元测试】方法名称,选择运行: ? 运行测试之后,可以测试资源管理器查看测试结果: ? 执行单元测试方法有很多,这些需要我们不断学习中去体会。

1.8K60

vs2019配置opencv什么版本_vs配置opencv

一、环境 vs2019社区版、win10 64位操作系统 二、opencv配置步骤(共5步) 1、下载OpenCV4.0.1,官网为opencv.org 2、安装opencv,我安装目录是 D:...\opencv-4.0.1-vc14_vc15 3、添加环境变量,PATH添加: D:\opencv-4.0.1-vc14_vc15\opencv\build\x64\vc15\bin 4...opencv_world401.dll和opencv_world401d.dll文件复制到 C:\Windows\SysWOW64这个文件夹; 另外:以上如果不想copy到C盘,把两个文件添加到工程引用应该也是可行...使用解决方案资源管理器窗口添加/管理文件 // 2. 使用团队资源管理器窗口连接到源代码管理 // 3. 使用输出窗口查看生成输出和其他消息 // 4....本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

1.1K10

.NET单元测试艺术-1.入门

本次单元测试实践,我们会一步一步编写测试来验证LogAn解析、事件识别以及通知功能。首先,我们需要了解使用NUnit来编写单元测试。...这里if故意去掉了一个!运算符,因此这个方法就包含了一个Bug-当文件名以.SLF结尾时会返回false,而不是返回true。这样,我们就能看到测试失败时测试运行期中显示什么内容。   ...单元测试理念很简单:只有所有的测试都通过,继续前行绿灯才会亮起。哪怕只有一个测试失败了,进度条上都会亮起红灯,显示系统(或者测试)出现了问题。 ?...,每个测试只能有一个setup和teardown方法,这两个方法对测试每个方法只执行一次。   ...五、小结   这一篇作为入门,带领大家领略了一下单元测试概念,如何编写单元测试,如何在VS应用NUnit进行单元测试。相信大家以前都用过MSTest,而我们这里却使用了NUnit。

2.1K20

.Net Core迁移到MSBuild平台(二)

一、前言 在上一篇文章.Net Core迁移到MSBuild多平台编译问题中,简单讲了下新项目配置文件节点配置,这篇我将用一些例子来详细讲下从project.json迁移到msbuild过程节点配置...做过完整迁移新项目配置文件朋友,肯定会觉得新项目配置文件Msbuild配置太扯了,虽然能直接编辑项目文件,但整个配置文件没有了像project.json智能提示,当你在打开文件后你就会发现以前很轻松能写出来..." } csproj配置并没有对应定义,它只会有项目文件名相同如:MyProjectName.csproj 程序集版本 (Version) { "version": "1.0.0-alpha...CopyToOutputDirectory> Always 单元测试...dotnet cli也集成了msbuild,即dotnet build。

1.7K20
领券