(简单了解)单元测试-junit

概念:

指针对最小的功能单元编写测试代码。

而Java中最小的功能单元是方法,所以在Java中,单元测试指的是对单个Java方法的测试。

使用单元测试的原因:

相信我们最常用的测试代码的方法就是在main()方法中调用各方法,但是,main()方法存在以下几点缺点:

1、如果其中的一个方法出现了错误,其他的方法也会受到影响

2、无法得到测试报告,只能自己一一检查结果是否正确

3、无法实现自动化测试,当方法数量过多的时候,消耗大量时间

针对以上缺点,junit单元测试框架正好可以进行解决:

1、各测试方法相互独立,互不影响

2、可生成测试报告,简单明了

3、可以灵活选择要执行哪些测试方法,也可以一键执行全部的测试方法

单元测试示例

public class userLogin {
    public String login(String loginName,String password){
        if ("admin".equals(loginName)&&"123456".equals(password)){
            return "登陆成功";
        }else {
            return "用户名或密码有问题!";
        }
    }
}
import org.junit.Assert;
import org.junit.Test;

public class TestUserLogin {

    @Test
    public void testUserLogin(){
        userLogin userLogin=new userLogin();
        String rs=userLogin.login("admin","123456");
        Assert.assertEquals("登陆业务出错!","登陆成功",rs);
    }
}

我们简单的写一个登陆方法和它对应的测试,当然,此处有一些注意点

1、测试方法的注意事项

(1)应为公开(public)且无参无返回值

(2)要用@Test注解在其前进行标注

2、在idea中导入junit的jar包

大家一开始使用的时候idea中很有可能是没有导入junit的jar包的,不用担心

在@Test处敲一下alt和enter键,会出现上图这样的界面,我选择的是导入junit4(大家可以自行选择),之后点击ok就可以啦,如下图

3、进行预期结果的正确性测试:断言

 我们一般使用上面这个方法

assertEquals(“失败消息提示","预期结果","实际结果”);

4、运行

在测试方法中右键直接运行就可以啦,绿色的小对勾表示你的测试通过了;

当我把测试方法中的“admin”修改为“admin1”时,再运行测试方法,他就会出现错误的测试报告:

常用注解

1、@Before:修饰实例方法,在每一个测试方法执行之前执行一次

2、@After:修饰实例方法,在每一个测试方法执行之后执行一次

3、@BeforeClass:修饰静态方法,在所有测试方法执行之前只执行一次

4、@AfterClass:修饰静态方法,在所有测试方法执行之后只执行一次

1、用处

执行之前执行:用于初始化资源

执行之后执行:用于释放资源

    Example c = null;
	
	@Before
	public void beforeClass() {
		c = new Example();
	}
	
    @Test
    public void testStatementCoverage(){
        int result = c.logicTest(1, 1);
        TestCase.assertEquals(result, 12);
    }

如上图,在@Before中进行Example对象的初始化,之后在每次的@Test方法执行之前就会创建新的实例

注意:实例变量的值不会传递给下一个@Test方法

2、执行顺序

3->1->2->4

    @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");
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值