- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
前一篇:详谈单元测试-xUnit
Assert 是基于代码的返回值、对象的最终状态、事件是否发生等情况来评估测试的结果。Assert 的结果可能是 Pass 或者 Fail。如果所有的 Asserts 都通过了,那么整个测试就通过了。如果任何 Asserts 失败了,那么结果就失败了。
一个 Test 里应该有多少个 Asserts ? 一种简易的做法是,每个 Test 方法里面只有一个 Asserts 。而还有一种建议就是,每个 Test 里面可以有多个 Asserts ,只要这些 Asserts 都是针对同一个行为。
Assert 提高了许多的 API 分别可以对不同的类型进行操作:bool、string、int、object 、collection 等
演示示例:先建一个 .net core 或者 standard 类库项目,再建立一个 xunit 测试项目,创建一个 Programmer(程序员) 类
Assert.True、Assert.False 用于判断期望结果是 true 或者 false。首先给程序员加个属性是否是同时又是 PM:public bool IsPM { get; set; },接着创建 IsPm 的单元测试
public class ProgrammerTests
{
[Fact]
public void IsPm()
{
// Arrange
var programmer = new Programmer();
// Act
var result = programmer.IsPM;
// Assert
Assert.True(result);
}
}
Assert.True 代码当结果 result 是 true 的时候,单元测试时通过的。反之, Assert.False 亦然。接着运行单元测试,可以看到是未通过的,并且提示我们期望的结果是 true 时间结果是 false
接着在单元测中,给 Programmer 的 IsPM 属性赋值 true ,然后运行单元测试,可以看到是通过的
string 类型提供的 api 相对较多,如: Assert.Equal - 等于、Assert.StartsWith - 已开头、Assert.EndsWith - 以结尾 、Assert.Contains - 包含、Assert.NotEqual - 不相等、Assert.Matches - 正则匹配等等
[Fact]
public void FullName()
{
var programmer = new Programmer();
programmer.FirstName = "Nick";
programmer.LastName = "Carter";
var fullName = programmer.FullName;
Assert.Equal("Nick Carter", fullName); //相等
Assert.StartsWith("Nick1", fullName);//以开头
Assert.EndsWith("Carter", fullName);//以结尾
Assert.Contains("Carter", fullName);//包含
Assert.Contains("Car", fullName);
Assert.NotEqual("CAR", fullName);//不相等
Assert.Matches(@"^[A-Z][a-z]*\s[A-Z][a-z]*", fullName);//正则表达式
}
数字包括 int、double 等类型,提供 Assert.Equal - 相等、Assert.InRange - 范围 等等 API
[Fact]
public void Age()
{
var programmer = new Programmer();
programmer.Age = 25;
var age = programmer.Age;
Assert.Equal(25, age); //判断是否相等
Assert.InRange(age, 24, 35);//判断是否在某一范围内
}
空可以判断值类型与引用类型、提供了 Assert.NotNull - 期望非空、Assert.Null - 期望空
[Fact]
public void Null()
{
var programmer = new Programmer();
programmer.FirstName = "Nick";
Assert.NotNull(programmer); // 期望不是空
Assert.Null(programmer.FirstName); // 期望是空
}
Assert 也支持集合,Contains 期望集合含有某个元素,DoesNotContain 期望集合不含有某个元素,如下
[Fact]
public void Languages()
{
//Arrange
var programmer = new Programmer();
//Act
programmer.Languages = new List<string>()
{
"GO",
"JAVA",
"C#"
};
Assert.Contains("JAVA", programmer.Languages); // 期望会 Java
Assert.DoesNotContain("C#", programmer.Languages); // 期望不会 C#
}
面对复杂对象 Assert 也同样支持,IsNotType 实例是否是某种类型、IsAssignableFrom 实例是否继承某种类型、NotSame 两个实例是否是同一个实例。如下
[Fact]
public void Programmer()
{
var p = new Programmer();
var p2 = new Programmer();
Assert.IsNotType<Person>(p); //期望是不是 Person 类型
Assert.IsType<Programmer>(p); //期望是 Programmer 类型
Assert.IsAssignableFrom<Person>(p); //期望对象 p 继承自 Person 类型
Assert.NotSame(p, p2); //期望不是同一个实例
Assert.Same(p, p2); //期望是同一个实例
}
全称“Java Virtual Machine statistics monitoring tool”(statistics 统计;monitoring 监控;tool 工具) 用于监控虚拟机的各种运
主要是讲下Mongodb的索引的查看、创建、删除、类型说明,还有就是Explain执行计划的解释说明。 可以转载,但请注明出处。  
1>单线程或者单进程 相当于短链接,当accept之后,就开始数据的接收和数据的发送,不接受新的连接,即一个server,一个client 不存在并发。 2>循环服务器和并发服务器
详解 linux中的关机和重启命令 一 shutdown命令 shutdown [选项] 时间 选项: ?
首先,将json串转为一个JObject对象: ? 1
matplotlib官网 matplotlib库默认英文字体 添加黑体(‘SimHei')为绘图字体 代码: plt.rcParams['font.sans-serif']=['SimHei'
在并发编程中,synchronized关键字是常出现的角色。之前我们都称呼synchronized关键字为重量锁,但是在jdk1.6中对synchronized进行了优化,引入了偏向锁、轻量锁。本篇
一般我们的项目中会使用1到2个数据库连接配置,同程艺龙的数据库连接配置被收拢到统一的配置中心,由DBA统一配置和维护,业务方通过某个字符串配置拿到的是Connection对象。  
实例如下: ? 1
1. MemoryCahe NetCore中的缓存和System.Runtime.Caching很相似,但是在功能上做了增强,缓存的key支持object类型;提供了泛型支持;可以读缓存和单个缓存
argument是javascript中函数的一个特殊参数,例如下文,利用argument访问函数参数,判断函数是否执行 复制代码 代码如下: <script
一不小心装了一个Redis服务,开了一个全网的默认端口,一开始以为这台服务器没有公网ip,结果发现之后悔之莫及啊 某天发现cpu load高的出奇,发现一个minerd进程 占了大量cpu,googl
今天写这个是为了 提醒自己 编程过程 不仅要有逻辑 思想 还有要规范 代码 这样可读性 1、PHP 编程规范与编码习惯最主要的有以下几点: 1 文件说明 2 funct
摘要:虚拟机安装时一般都采用最小化安装,默认没有lspci工具。一台测试虚拟网卡性能的虚拟机,需要lspci工具来查看网卡的类型。本文描述了在一个虚拟机中安装lspci工具的具体步骤。 由于要测试
1、修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统
目录 算术运算符 基本四则运算符 增量赋值运算符 自增/自减运算符 关系运算符 逻
如下所示: ? 1
MapperScannerConfigurer之sqlSessionFactory注入方式讲解 首先,Mybatis中的有一段配置非常方便,省去我们去写DaoImpl(Dao层实现类)的时间,这个
Linux的网络虚拟化是LXC项目中的一个子项目,LXC包括文件系统虚拟化,进程空间虚拟化,用户虚拟化,网络虚拟化,等等,这里使用LXC的网络虚拟化来模拟多个网络环境。 本文从基本的网络设备讲
? 1
我是一名优秀的程序员,十分优秀!