【C#/.NET】xUnit和Moq实现TDD】的更多相关文章

最近在做一个项目的单元测试时,遇到了些问题,解决后,觉得有必要记下来,并分享给需要的人,先简单说一下项目技术框架背景: asp.net core 2.0(for .net core)框架 用Entity Framework Core作ORM XUnit作单元测试 Moq作隔离框加 在对业务层进行单元测试时,因为业务层调用到数据处理层,所以要用Moq去模拟DbContext,这个很容易做到,但如果操作DbContext下的DbSet和DbSet下的扩展方法时,就会抛出一个System.NotSup…
本文很多内容来自选自TDD实例一书. 预备知识 最好有一些预备知识,例如xUnit,Moq,如何编写易于测试的代码,这些内容我都写了文章:https://www.cnblogs.com/cgzl/p/9178672.html#test. Test Driven Development 什么是TDD(Test Driven Development)? TDD是一个软件开发过程,这个过程依赖于重复性的小开发周期:需求被转化为具体的测试用例,然后改进程序以便通过测试. 在TDD里有两条规则: 只在有未…
在Xunit的基础上,说话模拟测试. 假如我们有这样一个控制器里面有这样一个方法,如图 我们在对Bar测试得时候,如果测试未通过,错误有可能来至于Bar,也有可能错误来至于serverde Foo方法. 这样就会干扰我们对于Bar的测试,因为我们只想测试Bar是否有问题.那我们就可以使用模拟测试,模拟server. 安装Moq包 在NuGet里搜索并安装Moq包. 安装后编写单元测试代码 using Xunit; using Moq; public void MoqTest() { Contro…
https://blog.csdn.net/fhzh520/article/details/52637545 目录 算法与数据结构(Algorithms and Data structures) 应用程序接口(API) 应用程序框架(Application Frameworks) 模板引擎(Application Templates) 人工智能(Artificial Intelligence) 程序集与装配件(Assembly Manipulation) 资源(Assets) 验证与授权(Aut…
单元测试可以有效的可以在编码.设计.调试到重构等多方面显著提升我们的工作效率和质量.github上可供参考和学习的各种开源项目众多,NopCommerce.Orchard等以及微软的asp.net mvc.entity framework相关多数项目都可以作为学习单元测试的参考.单元测试之道(C#版本)..NET单元测试艺术和C#测试驱动开发都是不错的学习资料. 1.单元测试的好处 (1)单元测试帮助设计 单元测试迫使我们从关注实现转向关注接口,编写单元测试的过程就是设计接口的过程,使单元测试通…
本篇将结合这个系列的例子的基础上演示在Asp.Net Core里如何使用XUnit结合Moq进行单元测试,同时对整个项目进行集成测试. 第一部分.XUnit 修改 Project.json 文件内容,增加XUnit相关的nuget包引用,并修改部分配置. { "version": "1.0.0-*", "testRunner": "xunit", // 设置测试工具为xunit "buildOptions"…
单元测试 本篇将结合这个系列的例子的基础上演示在Asp.Net Core里如何使用XUnit结合Moq进行单元测试,同时对整个项目进行集成测试. 第一部分.XUnit 修改 Project.json 文件内容,增加XUnit相关的nuget包引用,并修改部分配置. 1 { 2 "version": "1.0.0-*", 3 "testRunner": "xunit", // 设置测试工具为xunit 4 5 "bui…
本文章主要说明asp.net core的创建和简单使用. 一.使用到的命令 dotnet new :创建项目(解决方案,类库,单元测试等),如:dotnet new web dotnet add package 添加一个nuget的引用 dotnet test:运行测试 dotnet build:编译项目 dotnet sln add:将项目添加到解决方案 dotnet add reference:对此项目添加项目引用 二.建立空项目 在测试目录下运行 dotnet new web -n bas…
本文介绍如何保护API,无需看前边文章也能明白吧. 预备知识: http://www.cnblogs.com/cgzl/p/9010978.html http://www.cnblogs.com/cgzl/p/9019314.html 建立成熟度2级的 API请看这里: https://www.cnblogs.com/cgzl/p/9047626.html https://www.cnblogs.com/cgzl/p/9080960.html https://www.cnblogs.com/cg…
本文需要您了解ASP.NET Core MVC/Web API, xUnit以及Moq相关知识. 这里有xUnit和Moq的介绍: https://www.cnblogs.com/cgzl/p/9178672.html#test Controllers可以说是ASP.NET Core MVC/Web API项目的核心, 它们把整个应用都整合到了一起. 可以说Controllers是非常重要的, 所以我们应该对它们做一些测试. 由于我几乎只做API, 所以本文不包括关于MVC功能的测试, 只包括C…