单元测试自动化

Junit

在这里插入图片描述

Junit.Framework包:

Junit的基础框架,Junit测试类所需的所有基类

  • TestCase类是这个包的核心,测试人员对TestCase类进行继承开发自己的类测试驱动程序。
  • setUp()在每个测试方法调用前被调用,负责初始化测试方法所需要的测试环境;
  • tearDown()在每个测试方法被调用之后被调用,负责撤销测试环境。
    在这里插入图片描述

TestRunner 类:

启动测试的用户界面, BaseTestRunner是所有TestRunner的超类。

  • 三种运行器: testui.TestRunner;awtui.TestRunner; swingui.TestRunner;
  • 第一种是文本方式,后两种是图形方式都扩展于BaseTestRunner。

测试运行器
Junit测试的启动是通过使用JunitCore类实现的,

JunitCore.runClasses(TestMyClass.class)

JunitCore使用反射来为传递的测试类找到一个合适的Runner。
其中关键的一步就是查找测试类上的@RunWith注解,默认使用的是第一种测试执行器。

测试选择

  • 单个测试用例,继承TestCase实现单个测试类。
  • 需要一次执行多个测试对象时,您可以创建一个TestSuite对象或使用缺省的TestSuite对象进行封装

Assert类

在这里插入图片描述

  • assertEquals()内部逻辑判断使用equals()方法,表明断言判断两个实例的内部哈希值是否相等时,最好使用该方法对相同类实例的值进行比对。
  • assertSame()内部逻辑判断使用了java运算符“==”,这表明该断言判断两个实例是否来自同一个引用。

测试过程

1,建立用户测试类,它是TestCase的子类,在这个子,类中生成一个被测试的对象,编写代码检测某个方法被调用后对象的状态与预期的状态是否一致,进而断言程序代码有没有bug。
2,当这个子类要测试的方法不止一个时,实现代码可以先建立测试基础,让这些测试在同一个基础上运行,一方面让代码结构更为清晰,另一方面可以测试这些不同方法之间的联系。
3,执行测试时,有Failure和Error两种测试尚未通过的,信息。

  • Failure指assert***()断言失败
  • Error指程序没有考虑到的情况

注解

@Before:初始化方法[setUp()],在任何一个测试执行之前必须执行的代码。
@After:释放资源[tearDown()],在任何测试执行之后需要进行的收尾工作

@BeforeClass:针对所有测试,只执行一次。 [setUpBeforeClass()]
@AfterClass:针对所有测试,将会在所有测试方法执行结束后执行一次。[tearDownAfterClass()]

setUpBeforeClass()在所有测试前调用,
tearDownAfterClass()在所有测试后调用,
在整个测试过程中只被调用一次.
Eg: 初始化一些昂贵的资源,像数据库连接,然后执行所有的测试方法,所有测试完后释放资源。

@Test:测试方法,表明这是一个测试方法。在Junit中将会自动被执行。
@Ignore:忽略的测试方法,标注的含义就是“某些方法尚未完成,暂不参与此次测试” ;这样的话测试结果就会提示你有几个测试被忽略,而不是失败。一旦你完成了相应函数,
只需要把@Ignore标注删去,就可以进行正常的测试

@Test( expected, timeout)
参数 expected 代表测试方法期望抛出指定的异常,如果运行测试并没有抛出这个异常,则 JUnit 会认为这个测试没有通过。

参数 timeout,指定被测试方法被允许运行的最长时间应该是多少,如果测试方法运行时间超过了指定的毫秒数,则JUnit认为测试失败。

@RunWith(Suite.class):套件测试
在这里插入图片描述

参数化测试

@RunWith (Parameterized.class)
在提供数据的方法上加上一个@Parameters注解,这个方法必须是静态static的,并且返回一个集合Collection。
在这里插入图片描述

EclEmma

测试覆盖率:测试活动覆盖产品代码的指标

免费的Java代码测试覆盖率工具,可以直接在Eclipse平台中执行代码覆盖分析。
在这里插入图片描述

指标

在这里插入图片描述

使用

在这里插入图片描述
在这里插入图片描述
导出:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Ant

Java跨平台的构建工具,它可以实现项目的自动化构建和部署等功能
在这里插入图片描述

详细介绍

一般放在项目根目录下,用于描述项目中执行的每项任务。
任务通常用target描述, build文件可以执行一个或多个target
build.xml
在这里插入图片描述

  • Project:是Ant构建文件的根元素,启动项目
    • name: project元素名称。
    • default: 默认执行的target名称。
    • basedir: 指定基路径的位置。

  • target:是Ant的基本执行单元或是任务,可以包含一到多个具体的单元/任务(task)。多个target可以存在相互依赖关系。
    • name: target元素名称,在一个project中唯一。
    • depends:描述target之间的依赖关系,若与多个target存在依赖关系,需用“,”间隔 。

  • property:参量或参数的定义

  • Task:是一段可执行的代码
    在这里插入图片描述
    在这里插入图片描述

发布了74 篇原创文章 · 获赞 23 · 访问量 7169

猜你喜欢

转载自blog.csdn.net/BennetMa/article/details/105327330