Nsubstitute是一个开源的框架,源码是C#实现的。 你可以在这里获得它的源码:https://github.com/nsubstitute/NSubstitute NSubstitute 更注重替代(Substitute)概念。 NSubstitute 采用的是Arrange-Act-Assert测试模式,你只需要告诉它应该如何工作,然后断言你所期望接收到的请求,就大功告成了。 园子里Dennis Gao 的 《NSubstitute完全手册》 非常不错,推荐深入阅读。
xUnit.net 搭配NSubstitute 进行单元测试 在一个分层结构清晰的项目里,各层之间依赖于事先约定好的接口。 NSubstitute 已尝试将最常用的操作需求简单化、易用化,并支持一些不常用的或探索性的功能,与此同时还尽可能地将其语法向自然语言靠近。 关于NSubstitute的更详细信息请往 NSubstitute完全手册索引。 NSubstitute 已经发布2.0 RC版本支持.NET Core。 引入NSubstitute 相关nuget包: ? 的更详细信息请往 NSubstitute完全手册索引。
5、一个简单易用、灵活多变的.NET单元测试模拟框架 NSubstitute是一个开源的.NET单元测试模拟类库,该框架设计的主要目标是提供一个简单明了、易用性强、贴近自然语言的模拟测试框架。 NSubstitute为Arrange-Act-Assert(AAA)模式的测试进行设计,使得开发者只需关注如何进行测试,而无需考虑是否需要编写模拟或存根。 NSubstitute的语法简洁明了,更符合自然语言,使得可读性更高。对于新手或专注于测试的开发人员来说,它的语法友好,且更少使用lambda表达式,易于编写完美的测试程序。 此外,NSubstitute不仅提供了最常用的操作需求,还支持一些不常用的或探索性的功能。它尽可能地将语法向自然语言靠近,以模拟概念为中心,帮助开发者更好地完成单元测试。
· 问题 #1372 · moq/moq https://github.com/moq/moq/issues/1372 SponsorLink:反馈和前进 文章、幻灯片等 【英文】从 Moq 迁移到 NSubstitute 的备忘单 https://timdeschryver.dev/blog/a-cheat-sheet-to-migrate-from-moq-to-nsubstitute#method-invoked-with-any-arguments Studio 博客 https://devblogs.microsoft.com/visualstudio/lets-co-create-your-voice-matters/ 【英文】如何从 Moq 迁移到 NSubstitute https://itnext.io/how-to-migrate-from-moq-to-nsubstitute-cdb6a80404d 【英文】抑制GCTransition https://minidump.net m=1 【日文】从 Moq 迁移到 NSubstitute https://zenn.dev/masakura/articles/9b97948a11b40d 【日文】如何使用 .NET 8 执行 Blazor
3.2 关于NSubstitute隔离框架 Nsubstitute是一个开源的框架,源码是C#实现的。 你可以在这里获得它的源码:https://github.com/nsubstitute/NSubstitute NSubstitute 更注重替代(Substitute)概念。 NSubstitute 采用的是Arrange-Act-Assert测试模式,你只需要告诉它应该如何工作,然后断言你所期望接收到的请求,就大功告成了。 3.3 使用NSubstitute模拟对象 NSub是一个受限框架,它最适合为接口创建伪对象。 3.4 使用NSubstitute模拟值 如果接口的方法返回不为空,如何从实现接口的动态伪对象返回一个值呢?
本文的示例代码没有使用最近有争议的 Moq 库,而是使用了 NSubstitute 代替。 \BookManager.Tests.Unit\ dotnet add package nsubstitute dotnet add package fluentassertions 别忘了添加 xUnit 创建实例时传入一个 IBookRepository 的模拟对象作为参数,该模拟对象使用 NSubstitute 构建。 这里就体现出 NSubstitute 的功能了。 NSubstitute 允许我们使用 Arg.Any<T>() 这种参数来表示“任意 T 类型的数据”。 5.
nsubstitute mock框架。 Microsoft.AspNetCore.Mvc.Testing 用于asp.net core mvc项目的一个集成测试library。
Validation Swashbuckle Benchmark.NET Polly NodaTime GenFu 测试 单元测试 测试框架 MSTest NUnit xUnit 模拟工具 Moq NSubstitute
之前用过的antlr和NSubstitute,都是BSD许可协议。
Validation Swashbuckle Benchmark.NET Polly NodaTime GenFu 测试 单元测试 测试框架 MSTest NUnit xUnit 模拟工具 Moq NSubstitute
===========*/ 7 8 using System; 9 using Microsoft.VisualStudio.TestTools.UnitTesting; 10 using NSubstitute ===========*/ 7 8 using System; 9 using Microsoft.VisualStudio.TestTools.UnitTesting; 10 using NSubstitute } 40 } 这是单元测试类,没有什么特别的,跟之前的OrderService一样的逻辑;是不是发现两个测试类都在公用一组相关的接口,这里就需要我们将他们提取出来放入基类中; 1 using NSubstitute
.NET的隔离框架有很多,《单元测试的艺术》书中以NSubstitute(简称NSub)为例介绍了隔离框架的基本用法(看起来最近nuget下载量比moq更多)。 Visual Studio Microsoft Docs Microsoft.VisualStudio.TestTools.UnitTesting Namespace Microsoft Docs NSubstitute
所谓工欲善其事必先利其器,.NET 平台上强大的工具也是必不可少的,下文中将用XUnit和NSubstitute来进行所有的测试用例展示。
banking on the fact that these engineers are inherently both predisposed to, and have the ability to, \nsubstitute
SumPrices方法的UnitTest代码: 1 using System; 2 using Microsoft.VisualStudio.TestTools.UnitTesting; 3 using NSubstitute Microsoft.VisualStudio.TestTools.UnitTesting; 3 using Infrastructure.Common; 4 using ConsoleApplication1.DomainModel; 5 using NSubstitute
通常,你可以使用第三方库,如 Moq、NSubstitute 或 Rhino Mocks,来创建模拟和存根对象。以下是使用 Moq 作为示例的步骤: 1.
在此阶段,如果涉及数据库操作,还会利用 Moq 或 NSubstitute 生成必要的 EF Core DbContext 模拟对象。
官网 NSubstitute:一个友好的 .NET mocking 框架。 官网 NUnit: 官网 Rhino Mocks:.NET 平台的动态 Mocking 框架。
官网 NSubstitute:一个友好的 .NET mocking 框架。官网 NUnit:官网 Rhino Mocks:.NET 平台的动态 Mocking 框架。
Moq - 最受欢迎和友好的.NET框架 NBuilder - 快速生成测试对象 NSubstitute -一个友好的替代.NET框架 NUnit - 所有.Net语言的单元测试框架 Rhino Mocks