.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] 特性将方法表示为单个测试。spa

  在 VS 工具栏中选择 测试-- 运行 -- 全部测试,显示一个成功,一个失败:.net

  也能够使用 [Theory] 特性执行相同的代码,但具备不一样输入参数的测试,使用 [InlineData] 特性来指定这些输入的参数:code

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

 

2.MSTest 单元测试blog

  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"));
        }
    }
相关文章
相关标签/搜索