首页 > 编程知识 正文

使用junit进行单元测试,单元测试的用例

时间:2023-05-05 08:49:09 阅读:31067 作者:810

单元测试

1 .前言

在日常开发中,我们编写的所有代码都需要经过严格的测试才能发布。 传统的测试方法创建main函数进行简单测试,并使用大量的print语句输出结果。 这种方法实际上是不可取的。 这将导致程序内存在大量冗馀代码,不利于维护。 因此,业界提出了单元测试的概念。 单元测试是指检查和验证软件中的最小可测试性。 (最小单元可以是方法或类,根据具体场景定义。 java通常使用Junit工具进行。

2 .使用

将下载的Junit的jar文件导入项目即可。 然后可以创建单元测试类。 测试类也有相应的命名约定。 通常被命名为XxxTest。 Xxx是要测试的类名。 测试类中描述的测试方法是不需要返回值。 测试方法名称规范testXxx (,Xxx表示目标类中的方法名称。

2.1 Junit评论

评论

说明

@Test

书写方法表明当前方法是测试方法

@Before

标记该方法,并在运行任何单元测试之前运行的方法

@After

书写方法用于在运行任何单元测试后运行的方法

@BeforeClass

注释是静态方法,在测试方法之前运行它,然后运行一次。 通常可用于初始化操作

@AfterClass

注释是静态方法,在测试方法之前运行它,然后运行一次。 通常可用于初始化操作

@Ignore

书写方法表示忽略当前的这种方法

示例:

公共类别用户数据列表{

@ beforeclasspublicstaticvoidbefore1(

system.out.println(before1);

}

@ afterclasspublicstaticvoidafter1(

system.out.println(after1);

}

@Beforepublic voidbefore2() {

system.out.println(before2);

}

@Afterpublic voidafter2() {

system.out.println(after2);

}

@Testpublic voidtestSaveUser () {

UserDao dao=newUserDao (;

dao.saveUser (;

}

@Test//@Ignore//忽略当前的此方法

公共语音识别

UserDao dao=newUserDao (;

dao.findUserById (;

}

}

2.2使用断言(资产)。

断言是指将预期条件或表达式参与测试,并确定测试结果是否达到预期结果。

示例:

import edu.nf.service.userservice; importorg.junit.Test; //使用静态导入(正在导入某个静态方法)

导入静态org.JUnit.assert.*;

公共群集服务测试{

@ testpublicvoidtestfindusername () {

userserviceservice=newuserservice (; 使用//断言的测试//第一个参数是此预期结果,第二个参数是目标方法的返回值//如果两个值相等,则测试通过

资产质量(' hh ',service.findusername ) ) 1001 );

}

}

Assert类提供了许多Assert方法进行比较。 这些方法的所有返回值都是void,如果判定结果失败,则会抛出相应的异常信息。 断言方法如下

方法

说明

资产质量

判定两个值是否相等

资产not null

判定结果不允许为空

资产空值

判定结果为空

assertSame

确定两个对象是否为同一引用

assertArrayEquals

判定两个数组的内容是否相等

.

.

2.3测试套件

测试套件是指将一系列单元测试类集中在一起进行的单元测试。

测试工具包所需的注释:

评论

说明

@RunWith

如果对类进行注释,则表示当前类是测试套件的执行功能

@SuiteClasses

用于在类上集中所有单元测试类的类class

示例:

@runwith(suite.class ) )。

@ suite.suite classes ({ userdao test.class,UserServiceTest.class} )公共classuitetest { )。

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。