当前位置: 首页 > 面试题库 >

TestNG:如何测试强制性例外?

苏高远
2023-03-14
问题内容

我想编写一个TestNG测试,以确保在特定条件下引发了异常,如果未引发异常,则使测试失败。有没有一种简单的方法,而不必创建额外的布尔变量?

有关此主题的相关博客文章:http : //konigsberg.blogspot.com/2007/11/testng-and-
expectedexceptions-ive.html


问题答案:

@Test(expectedExceptions) 在最常见的情况下很有用:

  • 您期望会引发特定的异常
  • 您需要该异常的消息以包含特定的单词

根据文档,如果未expectedException引发测试,则测试将失败:

预期测试方法将引发的异常列表。如果没有异常或抛出此列表中的异常,则此测试将标记为失败。

以下是一些@Test(expectedExceptions)不够的方案:

  • 您的测试方法有几条语句,预计其中只有一条会抛出
  • 您正在抛出自己的异常类型,并且需要确保它符合特定条件

在这种情况下,您应该恢复为传统的(pre-TestNG)模式:

try {
  // your statement expected to throw
  fail();
}
catch(<the expected exception>) {
  // pass
}


 类似资料:
  • 根据以下链接:https://stackoverflow.com/a/20056622/1623597 https://stackoverflow.com/a/15640575/1623597TestNG不会在每个方法测试中创建新实例。 我有spring boot应用程序。我需要编写集成测试(控制器、服务、存储库)。有时为了创建新的测试用例,我需要数据库中的一些实体。为了忘记数据库中任何预定义的实

  • 主要内容:1. CharUtil类,2. TestNG @DataProvider示例另一个TestNG参数测试示例,是使用注解。 1. CharUtil类 创建一个将字符转换成ASCII或者副词的类,如何使用TestNG来做单元测试? 打开 Eclipse 创建一个 Maven 工程: ParameterTesting,其目录结构如下所示 - 类文件:CharUtils.java 的代码如下 - 2. TestNG @DataProvider示例 要测试它,创建一个接受两个参数(

  • 我正在进行测试集成,并为此使用测试,这里我需要使用多个测试数据运行测试用例序列。在这里,测试用例之间存在依赖关系。 公共类MyTestCase扩展了ISIntegrationTest{ } 这里,我需要以序列的形式运行test1、test2和test3,并提供传递数组的数据元素。根据以上示例,我期望输出如下。 test1:type1 test2:type1 test3:type1 test1:ty

  • 如果运行模式是,如何强制TestNG为每个方法创建新的测试类实例? JUnit自动执行,但TestNG在方法之间重用相同的实例。

  • 我有测试用例的testrail项目。我已经使用硒测试自动化了大部分测试用例。我找不到合适的逐步回答如何将testrail项目-测试用例与硒测试项目集成。在哪里找到应用编程接口,在哪里放置应用编程接口。一旦我执行硒项目,我想在测试轨道上标记测试用例为通过/失败。此外,这个应用编程接口将如何创建测试运行?

  • testng.xml TestNG将扫描所有类路径以寻找测试类(PackageUtils#findClassesInPackage)。 不需要的测试来自依赖项。 如何配置TestNG以只在maven项目测试目录中查找测试类(默认编译为)?