JavaWeb之“Junit”

举报
Mr.Z事顺意 发表于 2023/02/28 18:04:46 2023/02/28
【摘要】 Junit测试:黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值白盒测试:需要写程序逻辑代码进行测试,给输入值,看程序是否能够输出期望的值,junit 称之为白盒测试断言:期望的值称之为断言:Assert–>断言的工具类Junit测试的步骤:–>可以独立的进行运行1.定义一个测试类–>类名Test2.返回值–>void3.参数列表–>空参数注解依赖:@Test -->Junit的...

Junit测试:
黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值
白盒测试:需要写程序逻辑代码进行测试,给输入值,看程序是否能够输出期望的值,junit 称之为白盒测试
断言:期望的值称之为断言:Assert–>断言的工具类

Junit测试的步骤:–>可以独立的进行运行
1.定义一个测试类–>类名Test
2.返回值–>void
3.参数列表–>空参数
注解依赖:@Test -->Junit的依赖环境

    初始化方法:用于资源的申请,所有的测试方法在执行之前都会进行执行该方法-->init()
    注解依赖:@before-->存在于Junit环境中的依赖环境
    释放资源方法:在所有的测试方法执行结束后,方法将会自动进行执行。-->close()
    注解依赖:@after-->存在于Juni环境中的依赖环境

判定结果:
测试红色:测试失败
测试绿色:测试成功

import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

import cn.tedu.domain.Calculate;

public class CalculateTest {

	//测试计算器的类
	Calculate cal=new Calculate();
	@Before
	public void init(){
		System.out.println("init....");
	}
	
	@Test
	public void test1(){
		int sum=cal.add(7, 6);
		System.out.println(sum);
		Assert.assertEquals(13, sum);
		
		
	}
	
	@After
	public void after(){
		System.out.println("after...");
	}
	
	
	
}

测试类:

```java
package cn.tedu.domain;

import org.junit.After;
import org.junit.Before;

public class Calculate {
	
	/*
	 *测试分类:
	 *	黑盒测试:不需要写代码,给输入值,在进行输出值的判断
	 *	白盒测试: 需要写一定的逻辑代码,关注的程序的具体执行流程
	 */
	
	/**
	 * Junit测试的使用:使用白盒测试--》可以使程序直接独立的进行运行
	 * 使用步骤:
	 *		1.定义测试方法名
	 *		2.返回值  void
	 *		3.参数列表:空参数
	 *		4.在测试方法上面添加@Test的注释
	 *		5.导入Junit的依赖
	 *判定结果:
	 *		红色:测试出错
	 		绿色:测试成功
	 注意:一般使用断言操作处理结果--》输出值是否和期望的值是否一样
	 		Assert.assertEquals();
	 补充:@before 初始化方法--》申请资源的方法,在所有测试方法执行前进行执行
	 	@after 释放资源方法--》在所有的测试方法执行后进行执行
	 */
	
	//加法
	
	
	
	public int add(int a,int b){
		return a+b;
	}
	
	//减法
	public int sub(int a,int b){
		return a-b;
	}
	
	

}

一、软件测试种类:

    单元测试:主要是用于测试程序模块,确保代码运行正确。单元测试是由开发者编写并进行运行测试。一般使用的测试框架是Junit或者 testNG。测试用例一般是针对 方法 级别的测试。
    集成测试:用于检测系统是否能正常工作。集成测试也是由开发者共同进行测试,与单元测试专注测试个人代码组件不同的是,集成测试是系统进行跨组件测试。
    功能性测试:是一种 质量保证过程 以及 基于 测试软件组件的规范下 的 由输入得到输出的一种黑盒测试。功能性测试通常由不同的测试团队进行测试,测试用例的编写要遵循组件规范,然后根据测试输入得到的实际输出与期望值进行对比,判断功能是否正确运行。

1.单元测试的优点:

    代码正确性可以得到保证(保证代码运行与我们预想的一样)
    程序运行出错时,有利于我们对错误进行查找(因为我们忽略我们测试通过的代码)
    有利于提升代码架构设计(用于测试的用例应力求简单低耦合,因此编写代码的时候,开发者往往会为了对代码进行测试,将其他耦合的部分进行解耦处理) ······

二、Junit单元测试

    单元测试是指对代码中的最小可测试单元进行检查和验证,以便确保它们正常工作(一个单元可以是一个方法、类、包或者子系统)

    1.内容

    注解:

        @Test :该注释表示,用其附着的公共无效方法(即用public修饰的void类型的方法 )可以作为一个测试用例;

        @Before :该注释表示,用其附着的方法必须在类中的每个测试之前执行,以便执行测试某些必要的先决条件(多用于初始化);

        @BeforeClass :该注释表示,用其附着的静态方法必须执行一次并在类的所有测试之前,发生这种情况时一般是测试计算共享配置方法,如连接到数据库;

        @After :该注释表示,用其附着的方法在执行每项测试后执行,如执行每一个测试后重置某些变量,删除临时变量等(多用于释放资源);

        @AfterClass :该注释表示,当需要执行所有的测试在JUnit测试用例类后执行,AfterClass注解可以使用以清理建立方法,如断开数据库连接,注意:附有此批注(类似于BeforeClass)的方法必须定义为静态;

        @Ignore :该注释表示,当想暂时禁用特定的测试执行可以使用忽略注释,每个被注解为@Ignore的方法将不被执行。

/
* JUnit 注解示例
*/
@Test
public void testYeepay(){
  Syetem.out.println("用@Test标示测试方法!");
}
@AfterClass
public static void paylus(){
  Syetem.out.println("用@AfterClass标示的方法在测试用例类执行完之后执行!");
}

断言:

断言方法都来自 org.junit.Assert 类,其扩展了 java.lang.Object 类并为它们提供编写测试,以便检测故障

简而言之,我们就是通过断言方法来判断实际结果与我们预期的结果是否相同,如果相同,则测试成功,反之,则测试失败

    void assertEquals([String message], expected value, actual value) :断言两个值相等,值的类型可以为int、short、long、byte、char 或者
    java.lang.Object,其中第一个参数是一个可选的字符串消息;
    void assertTrue([String message], boolean condition) :断言一个条件为真;
    void assertFalse([String message],boolean condition) :断言一个条件为假;
    void assertNotNull([String message], java.lang.Object object) :断言一个对象不为空(null);
    void assertNull([String message], java.lang.Object object) :断言一个对象为空(null);
    void assertSame([String message], java.lang.Object expected, java.lang.Object actual) :断言两个对象引用相同的对象;
    void assertNotSame([String message], java.lang.Object unexpected, java.lang.Object actual) :断言两个对象不是引用同一个对象;
    void assertArrayEquals([String message], expectedArray, resultArray) :断言预期数组和结果数组相等,数组的类型可以为int、long、short、char、byte 或者 java.lang.Object

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。