.NET Core单元测试的两种方法介绍

 更新时间:2022年04月15日 08:50:06   作者:Ruby_Lu  
这篇文章介绍了.NET Core单元测试的两种方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

应用程序测试的类型很多,包括集成测试,Web 测试,负载测试等。在最底层的是单元测试,此测试可以测试单个软件组件或方法。单元测试一般只测试开发人员的代码,不应该测试基础结构普、问题,如数据库,文件系统或网络资源等。单元测试可以使用测试驱动开发(TDD)编写,也可以将它们添加到现有代码已确认其正确性。

在编写单元测试时,注意不要随意地在基础结构上引入依赖项。这些依赖项往往使测试更慢,更脆弱,因此应该将其保留用于继承测试。可以通过遵循显示依赖性原则,使用依赖注入从框架请求依赖关系,以此来避免应用程序代码中地这些隐藏依赖关系。

1.xUnit.net 单元测试

创建一个 .net core 类库项目,创建一个用于测试的方法:

public class UnitTest
    {
        public bool IsNum(string obj)
        {
            var i = 0;
            return int.TryParse(obj, out i);
        }
    }

然后添加 xUnit 测试项目:

创建测试成功和测试失败的方法:

public class UnitTest1
    {
        private UnitTest myTest;
        public UnitTest1()
        {
            myTest = new UnitTest();
        }
        [Fact]
        public void TestSuccess()
        {
            Assert.True(myTest.IsNum("1"));
        }

        [Fact]
        public void TestFail()
        {
            Assert.True(myTest.IsNum("q"));
        }
    }

[Fact] 特性将方法表示为单个测试。

在 VS 工具栏中选择 测试-- 运行 -- 所有测试,显示一个成功,一个失败:

也可以使用[Theory] 特性执行相同的代码,但具有不同输入参数的测试,使用[InlineData] 特性来指定这些输入的参数:

        [Theory]
        [InlineData("-1")]
        [InlineData("0")]
        public void Test(string str)
        {
            Assert.True(myTest.IsNum(str));
        }

2.MSTest 单元测试

xUnit 使跨平台的良好选择,在面向 Windows 时,MSTest 是一个更好的选择,因为是官方提供的支持。

创建 MSTest 测试项目,同样添加测试成功和失败的方法,在方法上添加 [TestMethod] 特性,并在类上添加特性 [TestClass]:

    [TestClass]
    public class UnitTest1
    {
        private UnitTest myTest;
        public UnitTest1()
        {
            myTest = new UnitTest();
        }
        [TestMethod]
        public void TestSuccess()
        {
            Assert.IsTrue(myTest.IsNum("1"));
        }

        [TestMethod]
        public void TestFail()
        {
            Assert.IsTrue(myTest.IsNum("q"));
        }
    }

到此这篇关于.NET Core单元测试的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • ASP.NET编程中经常用到的27个函数集

    ASP.NET编程中经常用到的27个函数集

    asp.net 整理的27个函数集,大家可以参考下
    2008-08-08
  • 利用noesis.Javascript开源组件.Net中执行javascript脚本

    利用noesis.Javascript开源组件.Net中执行javascript脚本

    利用Noesis.Javascript开源组件可以做到在.net中执行js脚本,同时js脚本也能调用C#函数。这个组件的获得方式:在NuGet中输入搜索"Noesis"就能找到,我们来做个搜索功能:用户能够在textbox中输入js脚本来筛选list记录
    2013-12-12
  • asp.net实现拒绝频繁的IP访问的方法

    asp.net实现拒绝频繁的IP访问的方法

    这篇文章主要介绍了asp.net实现拒绝频繁的IP访问的方法,涉及asp.net针对访问IP的判断及配置文件的设置技巧,需要的朋友可以参考下
    2016-04-04
  • http转https的实战记录(iis 7.5)

    http转https的实战记录(iis 7.5)

    这篇文章主要给大家介绍了关于http转https的相关资料,文中是最近的一次实战记录,基于iis7.5,通过一步步的图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2018-01-01
  • asp.net Ext grid 显示列表

    asp.net Ext grid 显示列表

    asp.net Ext grid 显示列表实现代码。
    2009-08-08
  • 利用Builder方式创建对象示例代码

    利用Builder方式创建对象示例代码

    这篇文章主要给大家介绍了关于利用Builder方式创建对象的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • ASP.NET中Session和Cache的区别总结

    ASP.NET中Session和Cache的区别总结

    这篇文章主要介绍了ASP.NET中Session和Cache的区别总结,本文结合使用经验,总结出了5点Session缓存和Cache缓存的区别,需要的朋友可以参考下
    2015-06-06
  • 如何在ASP.NET Core 的任意类中注入Configuration

    如何在ASP.NET Core 的任意类中注入Configuration

    这篇文章主要介绍了如何在 ASP.NET Core 的任意类中注入Configuration ,帮助大家更好的理解和学习使用.net技术,感兴趣的朋友可以了解下
    2021-04-04
  • asp.net 特定目录form验证

    asp.net 特定目录form验证

    前几听我的一个同事说form验证,我也只是听说过,说是一个很简单的验证,最近也在做一个小型的企业网站(因为刚进公司不久,老板就给了单独一个小项目练练手)。
    2009-06-06
  • ASP.Net Core中的日志与分布式链路追踪

    ASP.Net Core中的日志与分布式链路追踪

    这篇文章介绍了ASP.Net Core中的日志与分布式链路追踪,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下<BR>
    2022-03-03

最新评论