1.断言的概念

  假设确信某个属性符合要求,并且代码的执行依赖于这个属性。

  断言机制允许在测试期间向代码插入一些检查语句,当代码发布时,这些插入的检查语句将会被自动地移走。

  断言失败是致命的,不可恢复的错误。断言检查只用于开发和测试阶段。

  断言只应该用于在测试阶段确定程序内部的错误位置。

  

  2.一般使用JUnit 4来进行测试的时候使用断言

package autoConfig1;
import static org.junit.Assert.*;
import org.junit.Rule;
import org.junit.Test;
import org.junit.contrib.java.lang.system.SystemOutRule;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; // 声明测试套件运行器,为了让测试在Spring容器环境下执行,以便在测试开始的时候自动创建Spring的上下文。
@RunWith(SpringJUnit4ClassRunner.class)
// 1.告诉Spring要在CDPlayerConfig中加载配置,因为CDPlayerConfig类中包含了@ComponentScan,启动了Spring的组件扫描。
// 2.由于Spring启动了组件扫描,因此可以扫描出所有带有@Component注解的类,即SgtPeppers类和@Component类,并且在Spring中为其创建一个bean。
@ContextConfiguration(classes = CDPlayerConfig.class)
public class CDPlayerTest { @Rule // 这个注解是为了在执行case的时候加入测试者特有的操作,而不影响原有的case代码:减小了特有操作和case原逻辑的耦合。
public final SystemOutRule systemOutRule = new SystemOutRule().enableLog(); // 将MediaPlayer bean注入到测试代码之中。
@Autowired
private MediaPlayer player; // 将CompactDisc bean注入到测试代码之中。
@Autowired
private CompactDisc cd; // 简单的测试断言cd属性不为null。
// 如果它不为null,就意味着Spring能够发现CompactDisc类,自动在Spring上下文中将其创建为bean并将其注入到测试代码之中。
@Test
public void cdShouldNotBeNull() {
assertNotNull(cd);
} // 简单的测试断言player属性不为null。
// 如果它不为null,就意味着Spring能够发现CompactDisc类,自动在Spring上下文中将其创建为bean并将其注入到测试代码之中。
@Test
public void playerShouldNotBeNull() {
assertNotNull(player);
} // systemOutRule规则可以基于控制台的输出编写断言,这里断言play()方法的输出被发送到了控制台。
@Test
public void play() {
player.play();
assertEquals("Playing Sgt. Pepper's Lonely Hearts Club Band by The Beatles\r\n", systemOutRule.getLog());
} }

最新文章

  1. 一、常见PHP网站安全漏洞
  2. 面试题目——《CC150》位操作
  3. 【原创翻译】初识Unity中的Compute Shader
  4. web前段 弹出小例子
  5. 隐性改变display类型
  6. QLGame 2D Engine编写环境搭建
  7. pl sql练习(4)
  8. [Effective Modern C++] Item 2. Understand auto type deduction - 了解auto类型推断
  9. mybatis使用@param后掉的坑
  10. SQL入门之条件表达式
  11. JMS基础篇
  12. R语言基础1
  13. linux入门--Linux发行版本详解
  14. git 回滚远程服务端master的代码
  15. PS学习之动态表情制作
  16. springboot-32-使用mvc测试
  17. dedecms {dede:php}标签用法介绍
  18. Java.Util.List(List接口)
  19. 在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
  20. 线段树 - HDU1166 - 敌兵布阵

热门文章

  1. Spring MVC-从零开始-文件上传(未完待续)
  2. java多线程技术核心
  3. C++常用库函数(1)
  4. 43 道检验基础的 JavaScript 面试题
  5. http转换为https
  6. web前端之浏览器: 知识汇总
  7. SpringBoot注入Mapper失败
  8. Spring系列(六):Spring事务源码解析
  9. ASP.NET Web API 2系列(三):查看WebAPI接口的详细说明及测试接口
  10. vue父子组件钩子函数的执行顺序