断言的使用

本文介绍了断言在单元测试中的使用,阐述了断言的基本概念,即期望值与真实值的比较。当两者相同时,断言成功;不同时,断言失败。通过一个具体的例子,演示了如何新建接口、实现类以及生成测试类,并在测试类中设置断言信息,通过运行测试方法来验证断言的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 断言介绍

 

一般的,我们使用断言方式来做单元测试.

   什么是断言:期望结果和真实的一样.

    期望值:  

    真实值程序运行之后真正的结果.

    断言成功:   真实值和期望值相同.     显示绿条.

   断言失败:   真实值和期望值不同.     显示红条.

 

二 断言实例

 

2.1 新建一个算数的接口IMath类

 

package com.OSA.day02;

/**
 * 数学运算
 * @author sjq
 *
 */
public interface IMath {
	
	/**
	 * 两个数之和
	 * @param 数字1
	 * @param 数字2
	 * @return
	 */
	 int add(int a,int b);
	
	 /**
	  * 求两个数商
	  * @param 被除数
	  * @param 除数
	  * @return
	  */
	 int devide(int a,int b);

}

2.2 创建一个该接口的 实现类 IMathImpl类

 

 

package com.OSA.day02;

/**
 * 接口实现类
 * @author sjq
 *
 */


public class MathImpl implements IMath{

	public int add(int a, int b) {
		
		return a+b;
	}

	public int devide(int a, int b) {
		return a/b;
	}

}

4.3 在创建一个该实现类的测试类

 

生成测试类 需要有一个接口或者是实现类 选中 接口 ->new  Jnit text case->填写类名字和存放的目录结构
->选则需要测试的方法-》finish->生成junit4测试的方法

选择测试类的名称和测试保存的位置

    选择需要测试的方法

4.4 生成的类创建断言信息

 

package com.OSA.day02;

import junit.framework.Assert;

import org.junit.Test;

//MathImpl的测试类
public class IMathTest {
	//测试类需要依赖MathImpl类,需要MathImpl类实例对象
	//用接口来接受
	private IMath  math  = new MathImpl();
	@Test
	public void testAdd() {
		 int ret = math.add(2, 3);
		 //断言方法返回的结果是否和某一个值相等
		//点击方法run as 
		 Assert.assertEquals("提示", 5, ret);
	}
	@Test
	public void testDevide() {
		
	}

}

点击testAdd方法的runas 运行测试的结果

 

改一下断言内容

 

		 Assert.assertEquals("提示", 4, ret);

 

 

 

 

 

三 其他断言测试

 

①:Assert.assertEquals(message, expected, actual):比较的值,比较两个对象值存储的数据.
   三个参数:
     message:  断言失败的提示信息,断言成功不会显示.
     expected: 期望值
     actual:   真实值
   若真实值和期望值想等,则断言成功.--->绿条
②:Assert.assertSame(message, expected, actual):比较地址,是同一个对象
   Assert.assertNotSame(message, expected, actual):断言不是同一个对象
③:Assert.assertTrue(message, condition):断言condition应该为TRUE.
④:Assert.assertFalse(message, condition):断言condition应该为FALSE.
⑤:Assert.assertNull(message, object):断言对象object为null.
⑥:Assert.assertNotNull(message, object):断言对象object不为null.
⑦:@Test(expected=ArithmeticException.class)
   期望该方法报错,报错ArithmeticException.
⑧:@Test(timeout=400)
   期望该方法在400毫秒之内执行完成.

 

 

package com.OSA.day02;

import junit.framework.Assert;

import org.junit.Test;

//MathImpl的测试类
public class IMathTest {

	// 测试类需要依赖MathImpl类,需要MathImpl类实例对象

	// 用接口来接受
	private IMath math = new MathImpl();

	@Test
	public void testAdd() {

		int ret = math.add(2, 3);

		// 断言方法返回的结果是否和某一个值相等
		// 点击方法run as
		Assert.assertEquals("提示", 5, ret);
	}

	@Test
	public void testDevide() {
		int ret = math.devide(12, 3);
		// 断言方法返回的结果是否和某一个值相等
		// 点击方法run as
		Assert.assertEquals("提示", 4, ret);
	}

	// 当除数为0的时候了,期望报错
	// ArithmeticException
	// 希望当除数为0的时候报错,如果不为0就不符合期望值,就会报红色
	@Test(expected = ArithmeticException.class)
	public void testDevide2() {
		int ret = math.devide(12, 0);
		// 断言方法返回的结果是否和某一个值相等
		// 点击方法run as
		Assert.assertEquals("提示", 4, ret);
	}
	
	//性能测试 期望2000毫秒之内执行完毕,当执行超过2000毫秒就报红色
	@Test(timeout=2000)
	public void testTimeOut() throws Exception {
		
		 long begin = System.currentTimeMillis();
		 
		 String str = "";
		 for (int i = 0; i <30000; i++) {
			str += i;
		}
		 long end = System.currentTimeMillis();
		 System.out.println(end-begin);

	}
	
	

}

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值