JUnit - 使用断言

断言

所有的断言都包含在 Assert 类中

public class Assert extends java.lang.Object

这个类提供了很多有用的断言方法来编写测试用例。只有失败的断言才会被记录。Assert 类中的一些常用的方法列式如下:

序号  方法和描述
1 void assertEquals(boolean expected, boolean actual)
检查两个变量或者等式是否平衡

2

void assertTrue(boolean expected, boolean actual)
检查条件为真

3

void assertFalse(boolean condition)
检查条件为假

4

void assertNotNull(Object object)
检查对象不为空

5

void assertNull(Object object)
检查对象为空

6

void assertSame(boolean condition)
assertSame() 方法检查两个相关对象是否指向同一个对象

7

void assertNotSame(boolean condition)
assertNotSame() 方法检查两个相关对象是否不指向同一个对象

8

void assertArrayEquals(expectedArray, resultArray)
assertArrayEquals() 方法检查两个数组是否相等

待测试类

 /**
*
* @author Administrator
* junit测试用例类
*/
public class Demo { /**
* 获取两数之和
* @param numOne int.
* @param numTwo int.
* @return int numOne+numTwo.
*/
public int getAdd(int numOne,int numTwo) {
return numOne+numTwo;
} /**
* 获取两数比较的真假
* @param numOne int.
* @param numTwo int.
* @return boolean numOne>numTwo.
*/
public boolean getDifference(int numOne,int numTwo) {
return numOne>numTwo;
} /**
* 获取一个字符串
* @return String.
*/
public String getString() {
return "不提也罢";
}
}

junit测试类

 import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;//静态导入类的所有静态方法
import org.junit.Test;
/*junit测试类*/
public class DemoTest {
Demo demo = new Demo(); @Test
public void testGetAdd() {
int add = demo.getAdd(2, 3);
assertThat(add,is(5));//变量是否等于指定值
assertThat(add, not(4));//变量是否不等于指定值
} @Test
public void testGetDifference() {
boolean difference = demo.getDifference(3, 2);
assertTrue(difference);//判断真假
} @Test
public void testGetString() {
String string = demo.getString();
//测试变量是否包含指定字符
assertThat(string, containsString("也"));
//测试变量是否已指定字符串开头
assertThat(string, startsWith("不"));
//测试变量是否以指定字符串结尾
assertThat(string, endsWith("罢"));
//测试变量是否等于指定字符串
assertThat(string, equalTo("不提也罢"));
}
}

结果通过,无错误。如图:

注释

注释就好像你可以在你的代码中添加并且在方法或者类中应用的元标签。JUnit 中的这些注释为我们提供了测试方法的相关信息,哪些方法将会在测试方法前后应用,哪些方法将会在所有方法前后应用,哪些方法将会在执行中被忽略。
JUnit 中的注释的列表以及他们的含义:

序号 注释和描述
1 @Test
这个注释说明依附在 JUnit 的 public void 方法可以作为一个测试案例。
2 @Before
有些测试在运行前需要创造几个相似的对象。在 public void 方法加该注释是因为该方法需要在 test 方法前运行。
3 @After
如果你将外部资源在 Before 方法中分配,那么你需要在测试运行后释放他们。在 public void 方法加该注释是因为该方法需要在 test 方法后运行。
4 @BeforeClass
在 public void 方法加该注释是因为该方法需要在类中所有方法前运行。
5 @AfterClass
它将会使方法在所有测试结束后执行。这个可以用来进行清理活动。
6 @Ignore
这个注释是用来忽略有关不需要执行的测试的。
 import static org.junit.Assert.*;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test; public class ClassDemoTest { //在类加载前,只执行一次
@BeforeClass
public static void beforeClass() {
System.out.println("类加载前");
} //在类加载后,只执行一次
@AfterClass
public static void afterClass() {
System.out.println("类加载后");
} //在每一个测试方法执行前执行一次
@Before
public void before() {
System.out.println("测试方法执行前");
} //在每一个测试方法执行前执行一次
@After
public void after() {
System.out.println("测试方法执行后");
} //测试单元1
@Test
public void testCase1() {
System.out.println("测试单元1");
} //测试单元2
@Test
public void testCase2() {
System.out.println("测试单元2");
}
@Ignore
public void testIgnore() {
System.out.println("Ignore");
} }

执行结果如下:

junit断言和junit注释assert的更多相关文章

  1. The <classpath> or <modulepath> for <junit> must include junit.jar if not in Ant's own classpath

    The <classpath> or <modulepath> for <junit> must include junit.jar if not in Ant's ...

  2. pytest测试框架 -- assert断言和fixture固件

    一.断言 (1)使用assert语句进行断言 # test_run.py @pytest.mark.assert def test_assert(self): r = requests.get(&qu ...

  3. JUnit实战(2) - JUnit核心(使用Suite来组合测试)

    创建Java Project项目:ch02-internals MasterTestSuite.java package com.manning.junitbook.ch02.internals; i ...

  4. JUnit实战(1) - JUnit起步(Parameterized参数化测试)

    创建Java Project项目,项目名称:ch01-jumpstart Calculator.java public class Calculator { public double add(dou ...

  5. junit学习之junit的基本介绍

    Junit目前在一些大的公司或者相对规范的软件中使用的比较多,相当多的小公司并没有把单元测试看的太重要.在大点的公司开发人员每天上班后,第一件事情就是从svn上把自己负责的代码checkout下来,然 ...

  6. junit 常用注解 + junit 断言详解

    @Test: 在junit3中,是通过对测试类和测试方法的命名来确定是否是测试,且所有的测试类必须继承junit的测试基类.在junit4中,定义一个测试方法变得简单很多,只需要在方法前加上@Test ...

  7. [JUnit] Introduce to Junit and it annotations

    Check the get started guid https://junit.org/junit5/docs/current/user-guide/#overview-getting-help p ...

  8. Junit 学习1 junit的简单使用

    package junit; import java.sql.Connection; import java.sql.SQLException; import org.junit.Test; impo ...

  9. Spring是如何整合JUnit的?JUnit源码关联延伸阅读

    上一篇我们回答了之前在梳理流程时遇到的一些问题,并思考了为什么要这么设计. 本篇是<如何高效阅读源码>专题的第十二篇,通过项目之间的联系来进行扩展阅读,通过项目与项目之间的联系更好的理解项 ...

随机推荐

  1. flutter的webview案例

    flutter 加载webview 安装插件  flutter_webview_plugin: ^0.2.1 从listview点击item跳转页面加载详情页案例 import 'dart:async ...

  2. ant_<target>标签含义与使用

    <target>标记目标 目标是一个或多个任务的集合,任务是一段可执行的代码:构建文件中包含一个项目,在项目内部声明了所有目标: <target name = "run&q ...

  3. 深入学习IOZone【转】

    本文转载自:https://blog.csdn.net/werm520/article/details/7262103 深入学习IOZone 刘智朋       2011-3-29 1        ...

  4. mvc 之 RouteConfig配置

    //这里没有使用对用的指定参数 /Day_1:表示解决方案的名称,意思是默认找到该项目解决方案目录下的controllers进行匹配 routes.MapRoute( "Default&qu ...

  5. 用python写MapReduce函数——以WordCount为例

    尽管Hadoop框架是用java写的,但是Hadoop程序不限于java,可以用python.C++.ruby等.本例子中直接用python写一个MapReduce实例,而不是用Jython把pyth ...

  6. Yarn 踩坑 : Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster

    原因:yarn-site.xml 中,yarn.application.classpath 未配置 解决:其中 hadoop 版本对应更改 <property> <name>y ...

  7. javascript的this关键字

    this永远指向函数运行时所在的对象!而不是函数被创建时所在的对象.也即:谁调用,指向谁.切记… 1.普通函数中的this 无论this身处何处,第一要务就是要找到函数运行时的位置. var name ...

  8. python学习:数据类型

    python有两种索引方式.一种从左至右,下标从0开始:一种从右至左,下标从-1开始. python有六种数据类型: 不可变数据(四个):Number(数字).String(字符串).Tuple(元组 ...

  9. js获取当前时间:封装js的日期时间

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  10. VNC错误修复⽅方法

    VNC错误修复方法 VNC错误描述 vnc viewer开启后弹窗提示 Could not connect to session bus: Failed to connect to socket /t ...