一些简单的Assert

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using System.IO;
  6 using NUnit.Framework.Constraints;
  7 using NUnit.Framework;
  8
  9 namespace TestAssertLearning
 10 {
 11     [TestFixture]
 12     class AssertModuleTest
 13     {
 14         private FileInfo fi;
 15         private FileStream fs;
 16         private DefaultDefine dd;
 17         public class dad : DefaultDefine
 18         {
 19             public int realID;
 20             public dad()
 21             {
 22                 realID = 100;
 23             }
 24         }
 25         public dad ad;
 26         [SetUp]
 27         public void AssertTestSetup()
 28         {
 29             dd = new DefaultDefine();
 30             ad = new dad();
 31             fi = new FileInfo(@"D:\a.txt");
 32             if (fs != null)
 33                 fs.Close();
 34             fs = new FileStream(@"D:\b.txt", FileMode.Create);
 35         }
 36
 37         [Test]//同等断言
 38         public void EqualTest()
 39         {
 40             Assert.That(5093, Is.EqualTo(5000 + 93));
 41             Assert.That(2 + 3, Is.Not.EqualTo(2));
 42             Assert.That(ad.ID, Is.EqualTo(dd.ID));
 43         }
 44
 45         [Test]//条件测试
 46         public void ConditionTest()
 47         {
 48             Assert.That(double.NaN, Is.NaN);
 49             Assert.That(3 > 2, Is.True);
 50             Assert.That(3 == 3);
 51             Assert.That(ad.NAME == dd.NAME);
 52             Assert.That("", Is.Empty);
 53         }
 54
 55         [Test]//一致性断言
 56         public void SameAsTest()
 57         {
 58             Assert.That(dd, Is.Not.SameAs(ad));
 59             Assert.That(dd, Is.SameAs(dd));
 60         }
 61
 62         [Test]//比较断言
 63         public void ComparisonTest()
 64         {
 65             Assert.That(100, Is.GreaterThan(3));
 66             Assert.That(3, Is.LessThanOrEqualTo(3));
 67             Assert.That(4, Is.AtLeast(3));
 68         }
 69
 70         [Test]//类型断言
 71         public void TypeTest()
 72         {
 73             Assert.That("5", Is.TypeOf(typeof(string)));
 74             Assert.That(dd, Is.InstanceOf(typeof(DefaultDefine)));
 75             Assert.That(ad, Is.AssignableFrom(typeof(dad)));
 76         }
 77
 78         [Test]//字符串断言
 79         public void StringTest()
 80         {
 81             var bb = "Hello World";
 82             Assert.That(bb, Text.StartsWith("h").IgnoreCase);
 83             Assert.That(bb, Text.DoesNotStartWith("h"));
 84             Assert.That(bb, Text.DoesNotContain("a"));
 85             Assert.That(bb, Text.Matches("Hello*"));
 86         }
 87
 88         [Test]//文件断言
 89         public void FileTest()
 90         {
 91             Assert.That(fi, Is.Not.EqualTo(fs));
 92         }
 93
 94         [Test]//集合断言
 95         public void CollectionsTest()
 96         {
 97             object[] ints = new object[] { 1, 2, 3, 4 };
 98             object[] doubles = new object[] { 1.44, 2.3, 4.4, 2.05 };
 99             object[] strings = new object[] { "absc", "asdaf", " ssdd", "fess" };
100
101             Assert.That(ints, Has.None.Null);
102             Assert.That(ints, Is.All.Not.Null);
103             Assert.That(ints, Is.All.AssignableFrom(typeof(int)));
104             Assert.That(strings, Is.All.AssignableFrom(typeof(string)));
105             //元素保持唯一性,互不相同
106             Assert.That(ints, Is.Unique);
107             Assert.That(ints, Is.Not.All.GreaterThan(3));
108             Assert.That(strings, Has.Some.StartsWith("a"));
109             Assert.That(strings, Has.Some.StartsWith(" "));
110             Assert.That(doubles, Is.All.InstanceOf(typeof(double)));
111             Assert.That(strings, Has.Some.EndsWith("s"));
112             Assert.That(strings, Is.All.Contains("s"));
113         }
114
115         [Test]//复合断言
116         public void CompoundTest()
117         {
118             Assert.That(2 + 2, Is.EqualTo(4) & Is.GreaterThan(2));
119             Assert.That(2, Is.GreaterThan(6) | Is.LessThanOrEqualTo(3));
120         }
121
122         [Test]//属性断言
123         public void PropertyTest()
124         {
125             dad[] ss = new dad[4] { new dad(), new dad(), new dad(), new dad() };
126             object[] oo = new object[3] { 3, "2", ss };
127             Assert.That(ss, Has.Some.Property("NAME"));
128             Assert.That(oo, Is.EqualTo(oo));
129             Assert.That(oo, Has.Some.Property("Length"));
130             Assert.That(ss, Is.All.Property("ID"));
131             Assert.That(oo, Has.Some.Equals(3));
132         }
133
134         [TearDown]
135         public void TearDown()
136         {
137             dd = null;
138             fs.Close();
139             ad = null;
140         }
141     }
142 }
时间: 2024-10-14 04:26:18

一些简单的Assert的相关文章

Python Assert 为何不尽如人意

Python中的断言用起来非常简单,你可以在assert后面跟上任意判断条件,如果断言失败则会抛出异常. >>> assert 1 + 1 == 2 >>> assert isinstance('Hello', str) >>> assert isinstance('Hello', int) Traceback (most recent call last): File "<input>", line 1, in <

(引用)自动化如何应对UI变更

让我们来聊一下UI自动化测试 转载:http://mt.sohu.com/20161209/n475414269.shtml 我发现了,大家极度关心自动化测试,尤其是UI自动化测试,虽然现在作为专项测试,离开这些越来越远了,但总能遥想以前,我总能想起自己做nokia的WindowsLive的ui自动化,做web的自动化测试,后面加入腾讯,写过pc的自动化,作为早期的终端测试,做android的自动化,然后mac的,然后ios. 先不说有多少成功经验,但是确实有一些感悟,现在分享给大家,希望能帮助

Effective Java - 方法的参数声明

给方法的参数加上限制是很常见的,比如参数代表索引时不能为负数.对于某个关键对象引用不能为null,否则会进行一些处理,比如抛出相应的异常信息. 对于这些参数限制,方法的提供者必须在文档中注明,并且在方法开头时检查参数,并在失败时提供明确的信息,即: detect errors as soon as possible after they occur 这将成为准确定位错误的一大保障. 如果没有做到这一点,最好的情况是方法在处理过程中失败并抛出了莫名其妙的异常,错误的源头变得难以定位,但这是最好的情

Effective Item 17 - 关于方法的参数声明

给方法的参数加上限制是很常见的,比如参数代表索引时不能为负数.对于某个关键对象引用不能为null,否则会进行一些处理,比如抛出相应的异常信息. 对于这些参数限制,方法的提供者必须在文档中注明,并且在方法开头时检查参数,并在失败时提供明确的信息,即detect errors as soon as possible after they occur,这将成为准确定位错误的一大保障. 如果没有做到这一点,最好的情况是方法在处理过程中失败并抛出了莫名其妙的异常,错误的源头变得难以定位,但这是最好的情况.

Swift 语言附注 类型

本页包含内容: 类型注解(Type Annotation) 类型标识符(Type Identifier) 元组类型(Tuple Type) 函数类型(Function Type) 数组类型(Array Type) 可选类型(Optional Type) 隐式解析可选类型(Implicitly Unwrapped Optional Type) 协议合成类型(Protocol Composition Type) 元类型(Metatype Type) 类型继承子句(Type Inheritance C

iOS开发——switf篇&amp;经典语法(一)类型

类型 Swift 语言存在两种类型:命名型类型和复合型类型.命名型类型是指定义时可以给定名字的类型.命名型类型包括类.结构体.枚举和协议.比如,一个用户定义的类 MyClass的实例拥有类型MyClass.除了用户定义的命名型类型,Swift 标准库也定义了很多常用的命名型类型,包括那些表示数组.字典和可选值的类型. 那些通常被其它语言认为是基本或初级的数据型类型(Data types)——比如表示数字.字符和字符串——实际上就是命名型类型,Swift 标准库是使用结构体定义和实现它们的.因为它

Python测试框架之unittest和pytest

目前搜狗商城接口测试框架用的是unittest+HTMLTestRunner,case数有1097条,目前运行一次自动化测试,时长约为30分钟,期望控制在10分钟或者更短的时间内.近期打算重新优化框架,着重解决运行效率低的问题.最近调研了一下另一种主流测试框架Pytest,Pytest是一个非常成熟的全功能的Python测试框架,本文主要对比了Unittest和Pytest这两种较为流行的Python测试框架. 一.Unittest Unittest是Python标准库中自带的单元测试框架,Un

【原创】junit4中Assert断言的使用以及Mockito框架mock模拟对象的简单使用

编写测试代码时,我们总会有我们对被测方法自己预期的值,以及调用被测方法后返回的真实执行后的值.需要断言这两个值是否相等.抛出异常.hash码等等情况... 这里博主主要介绍一下简单的断言和mock.如果已经对junit测试有过相对了解的,请略过这篇文章. 下面是我准备的节点类: 1 package demo; 2 3 /** 4 * @author Lcc 5 * 6 */ 7 public class Node { 8 private int value; 9 10 public Node(i

python的列表,元组和字典简单介绍

引 入 java                                   python 存取多个值:数组或list集合 ------------------------> 列表,元组 key-value格式:    Map        ------------------------>    字典 自己学习发现,java跟python这两门面向对象语言在数据类型的定义上,很多思想都是互通的,这里不说java,简单介绍一下python的列表,元组和字典. 一.列表 List: 最通