• ABP Xunit单元测试 第五篇


     1、创建如下的项目结构

        public class TestName
        {
    
            public bool ValidateName(string Name)
            {
                if (Name == "yin")
                {
                    return true;
                }
                else
                    return false;
            }
        }
        public class UnitTest1
        {
            [Fact]
            public void Test1()
            {
                TestName name = new TestName();
                Assert.True(name.ValidateName("yin"));
                 
            }
        }

    运行方法,打开测试资源管理器,让后点击全部运行:

     Assert.True  

    断言累,判断返回结果是否真,真表示测试通过,false表示测试不通过

    如果以前使用过NUnit或者VS自带的MSTest测试工具,下面的对比表格会让你很容易上手xUnit.net:

    NUnit 2.2

    MSTest

    xUnit.net

    备注

    [Test]

    [TestMethod]

    [Fact]

    标记为测试方法

    [TestFixture]

    [TestClass]

    n/a

    包含有测试方法的类,在xUnit.net中无需标记,它会查找程序集中所有的public的测试方法

    [ExpectedException]

    [ExpectedException]

    Assert.Throws/ Record.Exception

    期望抛出异常

    [SetUp]

    [TestInitialize]

    Constructor(即构造函数)

    在每个测试方法执行之前用于初始化的方法

    [TearDown]

    [TestCleanup]

    IDisposable.Dispose

    在每个测试方法执行之后用于结束的方法

    [TestFixtureSetUp]

    [ClassInitialize]

    IUseFixture<T>

    在所有测试方法执行之前用于初始化的方法

    [TestFixtureTearDown]

    [ClassCleanup]

    IUseFixture<T>

    在所有测试方法执行之后用于结束的方法

    [Ignore]

    [Ignore]

    [Fact(Skip="reason")]

    临时忽略被标记的方法

    n/a

    [Timeout]

    [Fact(Timeout=n)]

    用于指定被测试方法的最大执行时间(单位毫秒),如果超过指定时间则会被标记为测试失败

    [Property]

    [TestProperty]

    [Trait]

    Set arbitrary metadata on a test

    n/a

    [DataSource]

    [Theory], [XxxData]

     

    xUnit.Net的断言(Assertions)

    下面的表格也是一个关于NUnit、MSTest及xUnit.Net断言的对比。

    NUnit 2.2

    MSTest

    xUnit.net

    备注

    AreEqual

    AreEqual

    Equal

    相等比较

    AreNotEqual

    AreNotEqual

    NotEqual

    不相等比较

    AreNotSame

    AreNotSame

    NotSame

    不相同比较

    AreSame

    AreSame

    Same

    相同比较

    Contains

    Contains (on CollectionAssert)

    Contains

     

    DoAssert

    n/a

    n/a

     

    n/a

    DoesNotContain (on CollectionAssert)

    DoesNotContain

     

    n/a

    n/a

    DoesNotThrow

     

    Fail

    Fail

    n/a

    可用Assert.True(false, "message")替代

    Greater

    n/a

    n/a

    可用Assert.True(x > y)替代

    Ignore

    Inconclusive

    n/a

     

    n/a

    n/a

    InRange

     

    IsAssignableFrom

    n/a

    IsAssignableFrom

     

    IsEmpty

    n/a

    Empty

     

    IsFalse

    IsFalse

    False

     

    IsInstanceOfType

    IsInstanceOfType

    IsType

     

    IsNaN

    n/a

    n/a

    可用Assert.True(double.IsNaN(x))替代

    IsNotAssignableFrom

    n/a

    n/a

    可用Assert.False(obj is Type)替代

    IsNotEmpty

    n/a

    NotEmpty

     

    IsNotInstanceOfType

    IsNotInstanceOfType

    IsNotType

     

    IsNotNull

    IsNotNull

    NotNull

     

    IsNull

    IsNull

    Null

     

    IsTrue

    IsTrue

    True

     

    Less

    n/a

    n/a

    可用Assert.True(x < y)替代

    n/a

    n/a

    NotInRange

    确保数据在某个范围内

    n/a

    n/a

    Throws

    确保会抛出异常

    xUnit.Net的项目文件结构

    因为在可视化方面xUnit.Net不如NUnit,所以这里有必要介绍一下它的项目文件.xunit的组成元素。.xunit实际上也是一个xml文件,它的根节点是<xunit>,<xunit>有<assemblies>子节点,<assemblies>下可以有多个<assembly>节点。<assembly>节点包含以下属性:

    filename:这是必须属性,用于指定包含在项目中的绝对或者相对路径的文件。

    config-filename:这个是非必须属性,用于指定测试时所使用的config文件,默认是none,表示不适用任何配置文件。

    shadow-copy:运行测试时是否对dll进行shadow-copy,默认是true,这个咱还不清楚true/false对程序的影响。

    下面就是一个例子,在例子中执行指明了测试中使用的config文件:

  • 相关阅读:
    Beyond Compare 30天评估期已过解决方案
    windows快捷键及命令
    表情包的转码解码
    html+css实现文本从右向左
    js控制页面滚回上一记录位置
    将base64转为二进制
    牛客挑战赛58
    字符串专题
    牛客挑战赛59
    组合数学专题
  • 原文地址:https://www.cnblogs.com/topguntopgun/p/9651697.html
Copyright © 2020-2023  润新知