• 单元测试之NUnit三


    NUnit 分三篇文章介绍,入门者可阅读文章,有基础者直接参考官方文档。初次写博客,望大家指点。

    导航:
    单元测试之NUnit一
    单元测试之NUnit二
    单元测试之NUnit三

    除了Assert断言外,NUnit还提供了其它直接断言的方法,比如string、directory、file等。另外,如有需要还可自行扩展。

    String Assert

    实现了string 类型的断言,包含以下方法:

     public class StringAssertTest
        {
            [Test]
            public void Contains_Test()
            {
                string expected = "a";//期望值。被包含
                string actual = "acb";//真是值。包含
                StringAssert.Contains(expected, actual);
                expected = "d";
                StringAssert.DoesNotContain(expected, actual);
            }
    
            [Test]
            public void StartsWith_Test()
            {
                string actual = "dcc";
                string expected = "d";
                StringAssert.StartsWith(expected, actual);
                expected = "c";
                StringAssert.DoesNotStartWith(expected, actual);
            }
    
            [Test]
            public void EndsWith_Test()
            {
                string actual = "dcc";
                string expected = "c";
                StringAssert.EndsWith(expected, actual);
                expected = "d";
                StringAssert.DoesNotEndWith(expected, actual);
            }
    
            [Test]
            public void EqualIgnoringCase_Test()
            {
                string actual = "adc";
                string expected = "adc";
                StringAssert.AreEqualIgnoringCase(expected, actual);
                expected = "a";
                StringAssert.AreNotEqualIgnoringCase(expected, actual);
            }
    
            [Test]
            public void Match_Test()
            {
                string actual = "adc";
                string expected = "adc";
                StringAssert.IsMatch(expected, actual);
                expected = "g";
                StringAssert.DoesNotMatch(expected, actual);
            }
        }
        
    

    Collection Assert

    CollectionAssert 提供为实现了IEnumerable的集合比较提供一系列方法:

    [Test]
            public void Equal_Test()
            {
                List<int> expected = new List<int> { 1, 2, 3 };
                List<int> actual = new List<int> { 2, 3, 1 };
                CollectionAssert.AreNotEqual(expected, actual);//集合元素位置不同,不相等
                actual = new List<int> { 1, 2, 3 };
                CollectionAssert.AreEqual(expected, actual);
            }
    
            [Test]
            public void ItemsOfType_Test()
            {
                List<object> cols = new List<object> { "1", "2", "b" };
                CollectionAssert.AllItemsAreInstancesOfType(cols, typeof(string));
            }
    

    更多方法如下:

    CollectionAssert.AllItemsAreInstancesOfType(IEnumerable collection, Type expectedType);
    CollectionAssert.AllItemsAreInstancesOfType(
        IEnumerable collection, Type expectedType, string message, params object[] args);
    
    CollectionAssert.AllItemsAreNotNull(IEnumerable collection);
    CollectionAssert.AllItemsAreNotNull(
        IEnumerable collection, string message, params object[] args);
    
    CollectionAssert.AllItemsAreUnique(IEnumerable collection);
    CollectionAssert.AllItemsAreUnique(
        IEnumerable collection, string message, params object[] args);
    
    CollectionAssert.AreEqual(IEnumerable expected, IEnumerable actual);
    CollectionAssert.AreEqual(
        IEnumerable expected, IEnumerable actual, string message, params object[] args);
    
    CollectionAssert.AreEquivalent(IEnumerable expected, IEnumerable actual);
    CollectionAssert.AreEquivalent(
        IEnumerable expected, IEnumerable actual, string message, params object[] args);
    
    CollectionAssert.AreNotEqual(IEnumerable expected, IEnumerable actual);
    CollectionAssert.AreNotEqual(
        IEnumerable expected, IEnumerable actual, string message, params object[] args);
    
    CollectionAssert.AreNotEquivalent(IEnumerable expected, IEnumerable actual);
    CollectionAssert.AreNotEquivalent(
        IEnumerable expected, IEnumerable actual, string message, params object[] args);
    
    CollectionAssert.Contains(IEnumerable expected, object actual);
    CollectionAssert.Contains(
        IEnumerable expected, object actual, string message, params object[] args);
    
    CollectionAssert.DoesNotContain(IEnumerable expected, object actual);
    CollectionAssert.DoesNotContain(
        IEnumerable expected, object actual, string message, params object[] args);
    
    CollectionAssert.IsSubsetOf(IEnumerable subset, IEnumerable superset);
    CollectionAssert.IsSubsetOf(
        IEnumerable subset, IEnumerable superset, string message, params object[] args);
    
    CollectionAssert.IsNotSubsetOf(IEnumerable subset, IEnumerable superset);
    CollectionAssert.IsNotSubsetOf(
        IEnumerable subset, IEnumerable superset, string message, params object[] args);
    
    CollectionAssert.IsEmpty(IEnumerable collection);
    CollectionAssert.IsEmpty(
        IEnumerable collection, string message, params object[] args);
    
    CollectionAssert.IsNotEmpty(IEnumerable collection);
    CollectionAssert.IsNotEmpty(
        IEnumerable collection, string message, params object[] args);
    
    CollectionAssert.IsOrdered(IEnumerable collection);
    CollectionAssert.IsOrdered(
        IEnumerable collection, string message, params object[] args);
    
    CollectionAssert.IsOrdered(IEnumerable collection, IComparer comparer);
    CollectionAssert.IsOrdered(IEnumerable collection,
        IComparer comparer, string message, params object[] args);
    

    Directory Assert

    文件夹断言:

            [Test]
            public void Directory_Test()
            {
                string basePath = AppDomain.CurrentDomain.BaseDirectory;
                DirectoryAssert.Exists(basePath + "/Directory"); // 判断文件夹是否存在
            }
    
     DirectoryAssert.AreEqual(DirectoryInfo expected, DirectoryInfo actual);
    DirectoryAssert.AreEqual(DirectoryInfo expected, DirectoryInfo actual, 
        string message, params object[] args);
    
    DirectoryAssert.AreNotEqual(DirectoryInfo expected, DirectoryInfo actual);
    DirectoryAssert.AreNotEqual(DirectoryInfo expected, DirectoryInfo actual, 
        string message, params object[] args);
    
    DirectoryAssert.Exists(DirectoryInfo actual);
    DirectoryAssert.Exists(DirectoryInfo actual, 
        string message, params object[] args);
    
    DirectoryAssert.Exists(string actual);
    DirectoryAssert.Exists(string actual, 
        string message, params object[] args);
    
    DirectoryAssert.DoesNotExist(DirectoryInfo actual);
    DirectoryAssert.DoesNotExist(DirectoryInfo actual, 
        string message, params object[] args);
    
    DirectoryAssert.DoesNotExist(string actual);
    DirectoryAssert.DoesNotExist(string actual, 
        string message, params object[] args);
    

    File Assert

    文件断言:

            [Test]
            public void File_Test()
            {
                // 判断文件是否存在
                FileAssert.Exists(AppDomain.CurrentDomain.BaseDirectory + "/Directory/file.txt");
            }
    
    FileAssert.AreEqual(Stream expected, Stream actual); //判断两个文件流是否相同
    FileAssert.AreEqual(
        Stream expected, Stream actual, string message, params object[] args);
    
    FileAssert.AreEqual(FileInfo expected, FileInfo actual); // 判断两个文件是否同一路径的同一文件
    FileAssert.AreEqual(
        FileInfo expected, FileInfo actual, string message, params object[] args);
    
    FileAssert.AreEqual(string expected, string actual);
    FileAssert.AreEqual(
        string expected, string actual, string message, params object[] args);
    
    FileAssert.AreNotEqual(Stream expected, Stream actual);
    FileAssert.AreNotEqual(
        Stream expected, Stream actual, string message, params object[] args);
    
    FileAssert.AreNotEqual(FileInfo expected, FileInfo actual);
    FileAssert.AreNotEqual(
        FileInfo expected, FileInfo actual, string message, params object[] args);
    
    FileAssert.AreNotEqual(string expected, string actual);
    FileAssert.AreNotEqual(
        string expected, string actual, string message, params object[] args);
    
    FileAssert.Exists(FileInfo actual); //判断文件是否存在
    FileAssert.Exists(
        FileInfo actual, string message, params object[] args);
    
    FileAssert.Exists(string actual);
    FileAssert.Exists(
        string actual, string message, params object[] args);
    
    FileAssert.DoesNotExist(FileInfo actual);
    FileAssert.DoesNotExist(
        FileInfo actual, string message, params object[] args);
    
    FileAssert.DoesNotExist(string actual);
    FileAssert.DoesNotExist(
        string actual, string message, params object[] args);
    

    扩展

    NUnit本身提供非常全面的功能,一般来说完全满足我们的项目需求。即使不能满足需求,NUnit也是可扩展的,包括:属性、约束条件、断言等的扩展。文档导航

  • 相关阅读:
    Pycharm2017应用小技巧
    浅谈哈希表
    攻克网页文字不可复制的难题
    Java中List的相关知识
    电脑实用小技巧
    Jme3涉及的eclipse知识
    Word2010撤销按钮失效,Ctrl+Z失效解决办法
    Word文档中怎么删除空白页?删除空白页的六种方法
    word中分栏后文字均匀的分布在了左右两栏,而不是填满左栏再填右栏,怎么办?
    visdom服务启动时提示Downloading scripts, this may take a little while解决办法
  • 原文地址:https://www.cnblogs.com/jimizhou/p/11412307.html
Copyright © 2020-2023  润新知