Java之单元测试(JUnit单元测试框架)
一、概述
-
单元测试就是针对最小的功能单元编写测试代码,Java程序最小的功能单元是方法,所以单元测试就是针对Java方法的测试,进而检查方法的正确性。 常规测试有什么问题?
- 只有一个main方法,如果一个方法的测试失败了,其他方法会受到影响。
- 无法得到测试的结果报告,需要程序员自己去观察测试是否成功
- 无法实现自动化测试
JUnit单元测试框架
JUnit是使用Java实现的单元测试框架,开源,几乎所有IDE都集成了JUnit,目前最新版本是5
优点
二、实操
/** 业务方法 */ public class UserService { public String loginName(String loginName , String passWord){ if("admin".equals(loginName) && "123456".equals(passWord)){ return "登录成功"; }else { return "用户名或者密码有问题"; } } public void selectNames(){ System.out.println(10/2); System.out.println("查询全部用户名称成功~~"); } }
/** 测试类 */ public class TestUserService { // 修饰实例方法的 @Before public void before(){ System.out.println("===before方法执行一次==="); } @After public void after(){ System.out.println("===after方法执行一次==="); } // 修饰静态方法 @BeforeClass public static void beforeClass(){ System.out.println("===beforeClass方法执行一次==="); } @AfterClass public static void afterClass(){ System.out.println("===afterClass方法执行一次==="); } /** 测试方法 注意点: 1、必须是公开的,无参数 无返回值的方法 2、测试方法必须使用@Test注解标记。 */ @Test public void testLoginName(){ UserService userService = new UserService(); String rs = userService.loginName("admin","123456"); // 进行预期结果的正确性测试:断言。 Assert.assertEquals("您的登录业务可能出现问题", "登录成功", rs ); } @Test public void testSelectNames(){ UserService userService = new UserService(); userService.selectNames(); } }
三、常用注解
目前常用的版本有4和5。