白盒测试框架(JUnit)的使用
Junit框架:
Junit是开源的java单元测试框架。
今天我们来介绍一下junit5,junit5由三个不同的子项目模块组成,包括Junit Platform、Junit Jupiter和Junit Vintage。它支持Java8以及以上版本,编辑器我在这使用的是IntelliJ IDEA,只需要查看最后结果,就知道整个项目的方法接口是否通畅。每个单元测试用例相对独立,由Junit 启动,自动调用。不需要添加额外的调用语句。
添加,删除,屏蔽测试方法,不影响其他的测试方法。
Junit主要是用于做白盒测试,白盒测试操作步骤如下:
1、测试计划阶段:根据需求说明书,制定测试进度。
2、测试设计阶段:根据代码的功能,人工设计测试用例进行基本功能测试。依据程序设计说明书,按照一定规范化的方法进行软件结构划分和设计测试用例。
3、测试执行阶段:输入测试用例,得到测试结果。
4、测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到并解决错误。
接下来我们介绍一下里面的注解:
@Test:表示测试方法,不用声明任何属性。
@ParameterizedTest:表示方法是测试方法,此外该注释还可以让一个测试方法使用不同的人参与多次运行。
@RepeatedTest:该注释可以让测试方法自定义重复运行次数。
@TestFactory:表示一个方法是基于数据驱动的动态测试数据源。
@Displayname:声明测试类或测试方法的自定义显示名称。
@BeforeEach:表示在每一个测试方法运行前,都运行该指定方法。
@AfterEach:表示在每一个测试方法运行后,都运行该指定方法。
@BeforeAll:在当前类的所有测试方法之前执行,此方法可以包含一些初始化代码。
@AfterAll:在当前类的所有测试方法之后执行。
@Disabled:注明一个测试类或方法无效。
断言:
Fail:断言测试失败。
AssertTrue/asserFalse:断言真或假。
AssertNull/assertNotNull:断言为空或不为空。
assertEquals/assertNotEquals:断言两个值相不相等。
AssertArrayEquals:断言数组元素全部相同。
AssertSame/assertNotSame:断言两个对像是否相同。
AssertThrows/assertDoesNotThrow:断言是否抛出异常。
AssertAll:断言多个条件均满足;
下面我们创建一个类,创建几个方法:
package test;//包机制 import java.lang.reflect.Array; public class MixedOperation { public int mixeOperation(int x,int y){ return division((x+y),y); } public int division(int x,int y){ int result=(x/y); return result; } public static void main(String[] args) { MixedOperation mixedOperation=new MixedOperation(); System.out.println(mixedOperation.mixeOperation(5,1)); } }
我们创建了一个名为MixedOperation的类;
package test; import org.junit.jupiter.api.*; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource; public class MixedOperationTest { private MixedOperation mixedOperation; @BeforeEach public void init(){ mixedOperation=new MixedOperation(); } @Test public void successTest(){ System.out.println("run a test:x=4,y=2"); int result=mixedOperation.mixeOperation(4,2); Assertions.assertEquals(3,result); } /* @DisplayName("失败") public void errorTest(){` System.out.println("run a test:x=4,y=0"); ArithmeticException exception=new ArithmeticException( ArithmeticException.class -> { mixedOperation.mixeOperation(4, 0); } ); }*/ @Disabled("参数") @Test @DisplayName("参数") @ParameterizedTest @CsvSource({"6,3,3","5,2,3","6,2,4"}) public void caTest(int x,int y,int excepted){ System.out.println("run a test :x="+x+"y="+y); System.out.println(excepted); int t= mixedOperation.mixeOperation(x,y); Assertions.assertEquals(excepted,t); } @Disabled @Test public void Next(){ System.out.println("抛出一个异常"); System.out.println(Assertions.assertThrows(IllegalArgumentException.class, () ->mixedOperation.mixeOperation(2,0))); } @Disabled @Test void error(){ Assertions.assertThrows(Exception.class,()->{Assertions.assertEquals(1,0);}); } @Test void sure(){ int result=mixedOperation.mixeOperation(4,2); Assertions.assertTrue(3==result);//断言相等 } }
这是我们创建一个名为MixedOperationTest的测试类;
相关推荐:《java视频教程》
以上是白盒测试框架(JUnit)的使用的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

JUnit框架中的注解用于声明和配置测试方法,主要注解包括:@Test(声明测试方法)、@Before(测试方法执行前运行的方法)、@After(测试方法执行后运行的方法)、@BeforeClass(所有测试方法执行前运行的方法)、@AfterClass(所有测试方法执行后运行的方法),这些注解有助于组织和简化测试代码,并通过提供明确的意图和配置来提高测试代码的可读性和可维护性。

JUnit是Java的单元测试框架,提供了简洁的工具来测试应用程序组件。安装依赖项后,可通过编写一个包含@Test注解的单元测试类来测试一个类,并使用assertEquals等断言方法验证预期值和实际值。JUnit提供了许多功能,例如准备方法、失败消息和超时机制。

在多线程环境中使用JUnit时,有两种常见方法:单线程测试和多线程测试。单线程测试在主线程上运行,避免并发问题,而多线程测试在工作线程上运行,需要同步测试方法来确保共享资源不受干扰。常见使用案例包括测试多线程安全方法,例如使用ConcurrentHashMap存储键值对,并发线程对键值对进行操作并验证其正确性,体现了多线程环境中JUnit的应用。

JUnit单元测试框架是一个广泛使用的工具,主要优点包括自动化测试、快速反馈、提高代码质量和可移植性。但它也有局限性,包括范围有限、维护成本、依赖性、内存消耗和缺乏持续集成支持。对于Java应用程序的单元测试,JUnit是一个强大的框架,提供了许多好处,但使用时需要考虑其局限性。

JUnit是Spring项目中广泛使用的Java单元测试框架,可以通过以下步骤应用:添加JUnit依赖项:org.junit.jupiterjunit-jupiter5.8.1test编写测试用例:使用@ExtendWith(SpringExtension.class)启用扩展,使用@Autowired注入Bean,使用@BeforeEach和@AfterEach准备和清理,用@Test标记测试方法。

在JUnit中,可以通过以下步骤在调试模式下运行测试用例:使用@RunWith注解关联BlockJUnit4ClassRunner运行器。设置断点以暂停执行并检查变量。使用System.out.println()输出信息以跟踪代码执行。使用JUnitAssert断言方法验证预期值和实际值。

遵循JUnit单元测试框架的最佳实践可实现有效的代码验证:编写独立的测试将测试放在适当的位置使用断言明智地验证结果遵循命名约定(test开头)编写负面测试使用Mocking和Stubbing隔离依赖项避免使用静态变量删除重复代码自动化测试执行

JUnit单元测试框架可以有效解决常见的内存泄漏问题。常见的泄漏问题包括持久静态变量引用和未关闭资源。JUnit提供了泄漏检测器和分析内存占用情况的工具来定位泄漏源。解决方法包括使用局部变量、弱引用、正确关闭资源和采用try-with-resources语句。通过遵循这些指南,开发人员可以创建可靠且稳定的JUnit测试环境。
