单元测试

血红的双手。 提交于 2019-11-28 16:08:54

一、概述

软件测试是程序的一种执行过程,目的是尽可能发现并改正被测试软件中的错误,提高软件的可靠性。

二、测试分类

1、按照是否知道源代码

  • 黑盒测试:不关心具体的逻辑代码,只测功能
  • 白盒测试:测试逻辑代码
  • 灰盒测试:介于黑盒和白盒之间

2、从软件开发的过程

  • 单元测试:Unit Testing
  • 集成测试:Integrated Testing
  • 系统测试:System Testing

3、根据测试的次数

  • 冒烟测试
  • 压力测试

三、Junit单元测试

Junit是一个基于Java语言的单元测试框架。是白盒测试的一种技术。

1、注意事项【重点】

  1. 测试方法上必须使用@Test进行修饰
  2. 测试方法必须使用public void 进行修饰,不能带任何的参数
  3. 新建一个源代码目录来存放我们的测试代码,即将测试代码和项目业务代码分开
  4. 测试类所在的包名应该和被测试类所在的包名保持一致,末尾【.test】
  5. 测试单元中的每个方法必须可以独立测试,测试方法间不能有任何的依赖
  6. 测试类使用Test作为类名的后缀(不是必须)
  7. 测试方法使用test作为方法名的前缀(不是必须)

2、一般测试TEST注解

public class UserDaoTest {
    @Test
    public void testAdd() {
        UserDao userDao = new UserDao();
        User user = new User(10, "嬴政", "12121", "12512362@163.com", "137707108084");
        userDao.add(user);
    }
}

光标在哪个方法,就测试执行哪个方法,如果要测试所有方法,则需要进行先后顺序处理,进行如下的多项目测试。

3、多项目测试

关键注解:@BeforeClass、@AfterClass、@Before、@After

public class OperationTest {
    /**
     * 声明Operation类型,在方法中创建对象
     */
    Operation operation;

    //在所有方法执行前执行,只执行一次
    @BeforeClass
    public static void before() {
        System.out.println("执行所有的测试方法执行之前,只执行一次");

    }

    //在所有方法执行后执行,只执行一次
    @AfterClass
    public static void after() {
        System.out.println("执行所有的测试方法执行之后,只执行一次");
    }

    //第一个方法执行前执行,创建对象
    //当第一个方法执行完After,如何还有方法,返回继续指向Before
    @Before
    public void methodBefore(){
        operation = new Operation();
        System.out.println("before");
    }

    //第一个方法执行后执行,释放对象
    @After
    public void methodAfter(){
        System.out.println("after");
        operation = null;
    }

    @Test
    public void testAdd() {
        int add = operation.add(10, 20);
        System.out.println(add);
        //断言、判断,期望值和实际值对比,不一致抛出异常,说明代码有问题
        Assert.assertEquals(30, add);
    }

	 //测试方法必须有注解,必须是public void,无参
    @Test
    public void testSub() {
        int sub = operation.sub(10, 20);
        System.out.println(sub);
        Assert.assertEquals(-10, sub);
    }
}

//打印结果:
执行所有的测试方法执行之前,只执行一次
before
30
after
before
-10
after
执行所有的测试方法执行之后,只执行一次
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!