云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 软件测试基础教程(中南林业科技大学涉外学院) - 图文

软件测试基础教程(中南林业科技大学涉外学院) - 图文

  • 62 次阅读
  • 3 次下载
  • 2025/12/10 18:44:15

@Test注解的expected参数,异常测试,用于测试是否会抛出指定的异常,若抛出则为成功,反之为失败。请在BookTest中新增一个测试用例: @Test(expected = ArithmeticException.class) public void caseException() { int n = 2 / 0; }

这个测试用例是以0为除数,运行效果如下:

成功!因为指定的ArithmeticException异常被抛出了。

@Test注解的timeout参数,限时测试,用于限定测试用例耗费的时间,单位毫秒,如果测试用例没有在限定时间内完成则为失败,否则以测试用例的执行结果为准。请在BookTest中新增一个测试用例:

@Test(timeout=1000) public void caseWhile() { for (;;) { }

}

这是一个死循环,1秒之后将被强制停止,运行效果如下:

由于超时,运行失败。

@Parameters注解,参数化测试,用于对同一测试用例测试一组数据。请新建一个“JUnit测试用例”BookTest2,修改代码如下:

package net.test.unit.junit;

import static org.junit.Assert.assertEquals;

import java.util.Arrays; import java.util.Collection;

import org.junit.After; import org.junit.Before; import org.junit.Test;

import org.junit.runner.RunWith; import org.junit.runners.Parameterized;

import org.junit.runners.Parameterized.Parameters;

@RunWith(Parameterized.class) public class BookTest2 {

private String expectedId; private String targetId; private String expectedName; private String targetName;

Book book = null;

@Parameters

public static Collection Result() { return Arrays.asList(new Object[][] { { \, \, \, \ }, { \, \, \, \ } }); }

public BookTest2(String expectedId, String targetId, String expectedName, String targetName) { this.expectedId = expectedId;

this.targetId = targetId; this.expectedName = expectedName; this.targetName = targetName; }

@Before

public void setUp() throws Exception { System.out.println(\测试开始!\); book = new Book();

System.out.println(\对象被初始化!\); }

@After

public void tearDown() throws Exception { System.out.println(\对象将被清理!\); book = null;

System.out.println(\测试结束!\); }

@Test

public void caseId() {

book.setId(targetId); //设置id属性的值 //使用Assert查看id属性的值

assertEquals(expectedId, book.getId()); System.out.println(\属性被测试!\); }

@Test

public void caseNames() {

book.setName(targetName); //设置name属性的值 //使用Assert查看name属性的值

assertEquals(expectedName, book.getName()); System.out.println(\属性被测试!\); }

}

这个例子其实就是BookTest的扩展版,但在原基础上有几点变化:

首先是文件头部增加了一行代码:@RunWith(Parameterized.class),用来调用BookTest2类运行;

其次是定义了一个用@Parameters注解的Result静态方法,该方法用来存放测试数据,本例存放了2组数据,每组4个;

再次是定义了一个带参数的构造函数,其参数个数与每组测试数据的个数相等;

最后是定义了expectedId等4个成员变量,用来传递测试数据到测试用例中。

下面执行BookTest2,运行效果如下:

测试用例运行了两遍,第一遍由于期待值和设定值不相等而失败,第二遍则运行成功。

junit.framework.JUnit4TestAdapter类。依赖于Java 5.0新特性,开发测试用例无需继承junit.framework.TestCase的JUnit 4.1已经推出一段时间了,但有些自带JUnit测试环境的IDE,例如NetBeans 5.5甚至旧版Eclipse仍只支持JUnit 3,无法正确运行基于JUnit 4.1环境开发的测试用例,因此要解决这个问题,需要借助于junit.framework.JUnit4TestAdapter类。新建类TestSuite,修改代码如下:

package net.test.unit.junit;

public class TestSuite {

public staticvoid main(String[] args) {

junit.textui.TestRunner.run(TestSuite.suite()); }

public static junit.framework.Test suite() {

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

@Test注解的expected参数,异常测试,用于测试是否会抛出指定的异常,若抛出则为成功,反之为失败。请在BookTest中新增一个测试用例: @Test(expected = ArithmeticException.class) public void caseException() { int n = 2 / 0; } 这个测试用例是以0为除数,运行效果如下: 成功!因为指定的ArithmeticException异常被抛出了。 @Test注解的timeout参数,限时测试,用于限定测试用例耗费的时间,单位毫秒,如果测试用例没有在限定时间内完成则为失败,否则以测试用例的执行结果为准。请在BookTest中新增一个测试用例: @Test(timeout

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com