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. 一.rest-framework之版本控制 二、Django缓存 三、跨域问题 四、drf分页器 五、响应器 六、url控制器

    一.rest-framework之版本控制 1.作用 用于版本的控制 2.内置的版本控制 from rest_framework.versioning import QueryParameterVer ...

  2. const与volatile

    C或者C++基本上是按照从上到下.从左至右的顺序来读.但对于指针声明从某种意义上来讲是倒着的. C或者C++中每个声明都由两部分组成:零个或者多个声明说明符,一个或者多个用逗号隔开的声明符. cons ...

  3. github笔记

    git config --global user.name"liuhongli1"liuhongli@liuhongli:~/github/test$ git config --g ...

  4. 无实体反序列化Json

    public class ExectendHelp { private int index = 0; public void GetLast(JObject obj, ref JToken token ...

  5. 利用JS打印质数

    我爱撸码,撸码使我感到快乐!大家好,我是Counter,今天非常愉快,没有前几天的相对比较复杂的逻辑思维在里面,今天来写写,利用JS打印质数,基本上很多面试,会很经常的考到.那废话不多说,直接上代码: ...

  6. [CodeForces 471A] MUH and Sticks

    题目链接:http://codeforces.com/problemset/problem/471/A 题目数据规模1 - 9,可以用一个数组进行计数,减掉出现四次的数,看看还有几个是非零数,有一个就 ...

  7. scala 入门Eclipse环境搭建

    scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld IDE选择并下载: scala for eclipse 下载: http://scala-ide.org/downloa ...

  8. MapReduce 踩坑 :Aggregation is not enabled. Try the nodemanager at IP:HOST

    原因:yarn-site.xml 中,有关mapreduce日志查看的aggregation未配置启用 解决:在yarn-site.xml 中加入以下配置 <property> <n ...

  9. win8获取保存的wlan密码方法

    使用netsh wlan show profile * key=clear 方法查找所有的保存的wifi 使用 netsh wlan show profile name="wifi名字&qu ...

  10. python读取xml文件中的坐标点

    用labelImg工具制作好xml文件后,需要读取其中img路径和坐标点,生成一个label.txt <annotation> <folder>big</folder&g ...