zoukankan      html  css  js  c++  java
  • Xunit入门

        本节记录Xunit单元测试的入门知识,以2.1版本作为入门示例。

    1、新建一个类库项目

    2、在Nuget中搜索xunit,这里我们只选xUnit.net和xunit.runner.visualstudio包。

         其中xUnit是框架,而xunit.runner.visualstudio是vs插件包,让我们可以方便的在vs中调试。安装xunit.runner.console也可以在CMD下调试,但是如果只支持这个,相信也没多少人会用这个框架,毕竟敲命令的方式严重拉低了Visual Studio的档次,所以这里也不做讲解。

        装好xunit.runner.visualstudio之后,打开 测试--》窗口--》测试资源管理器就可以在左侧窗口随时运行测试了。

      先贴出官网的演示代码

    public class Test1
        {
            [Fact]
            public void PassingTest()
            {
                Assert.Equal(4, Add(2, 2));
            }
    
            [Fact]
            public void FailingTest()
            {
                Assert.Equal(5, Add(2, 2));
            }
    
            [Theory]
            [InlineData(1,2)]
            public void TheoryPassingTest(int a, int b)
            {
                Assert.Equal(3, Add(a, b));
            }
            [Theory]
            [InlineData(3, 4)]
            public void TheoryPassingTest2(int a, int b)
            {
                Assert.Equal(3, Add(a, b));
            }
    
            int Add(int x, int y)
            {
                return x + y;
            }
    
    
            [Theory]
            [InlineData(3)]
            [InlineData(5)]
            [InlineData(6)]
            public void MyFirstTheory(int value)
            {
                Assert.True(IsOdd(value));
            }
    
            bool IsOdd(int value)
            {
                return value % 2 == 1;
            }
    
    
        }

    xUnit支持[Fact]和[Theory]两种属性。从代码中也可以看出来,[Fact]就类似于我们写的实际调用代码,而[Theory]配合InlineData可以直接在一个方法中测试多组参数。

    [Fact]和[Theory]还可以带两个参数,一个是修改显示名称,一个是跳过测试

            [Fact(DisplayName ="通过测试")]
            public void PassingTest()
            {
                Assert.Equal(4, Add(2, 2));
            }
    
            [Fact(Skip ="跳过测试")]
            public void FailingTest()
            {
                Assert.Equal(5, Add(2, 2));
            }

     

    当我们有新增的测试方法时,编译项目后自动显示在测试资源管理器中。其他简单的功能从字面上就可以看出来,就不多做解释了。

        

  • 相关阅读:
    Codeforces 938G(cdq分治+可撤销并查集+线性基)
    codeforces 938F(dp+高维前缀和)
    寒武纪camp Day6
    寒武纪camp Day5
    寒武纪camp Day4
    bzoj4161 (k^2logn求线性递推式)
    loj10003加工生产调度
    loj10002喷水装置
    loj10001种树
    bzoj1023
  • 原文地址:https://www.cnblogs.com/guangmangchen/p/5239180.html
Copyright © 2011-2022 走看看