Junit 预期异常测试用例示例

位置:首页>文章>详情   分类: Java教程 > 编程技术   阅读(283)   2023-06-26 07:54:18

Junit 是 Java 编程语言的单元测试框架。如果您想阅读有关 junit 测试遵循的最佳实践,那么这里有一个很好的指南供您参考。

在这篇文章中,我正在编写一个示例测试用例,它期望在运行时抛出异常。如果它得到预期的异常,则测试通过。如果未检测到预期异常,则测试用例失败。

这些类型的测试用例在您希望您的应用程序因非常荒谬的输入而失败时非常有用。

package com.cundage.test.junit;

import org.junit.Test;

public class ExpectedExceptionTest
{
	//This test case fails because it was expecting ArithmeticException
	@Test(expected = ArithmeticException.class)
	public void expectArithmeticException()
	{
		System.out.println("Everything was fine here !!");
	}

	//This test case fails because it was expecting ArithmeticException
	@Test(expected = ArithmeticException.class)
	public void expectArithmeticException2()
	{
		throw new NullPointerException();
	}

	//This test case passes because it was expecting NullPointerException
	@Test(expected = NullPointerException.class)
	public void expectNullPointerException()
	{
		//some code which throw NullPointerException in run time
		throw new NullPointerException();
	}
}

在上面的 3 个测试用例中,前两个失败了,因为他们期望在测试用例执行时没有得到 ArithmeticException。

第三个测试用例通过了,因为它期望 NullPointerException 并且测试用例抛出了它。

通过这种方式,您可以编写依赖于某些异常的测试用例来测试应用程序在失败时的行为。

快乐学习!!

标签2: Junit JUnit Basics
地址:https://www.cundage.com/article/junit-testcases-which-expects-exception-on-runtime.html

相关阅读

一般来说,听众有助于收听我们感兴趣的事件。这可能有几个原因。比如我们添加监听器来添加特定的日志,在Java GUI编程中处理UI事件等。 JUnit 还支持在通过 RunListener 类执行...
JUnit 测试套件有助于批量分组和执行测试。在大多数情况下,不需要为所有测试类单独执行测试。测试套件有助于实现这种分组。 在 JUnit 中,可以使用这些注释创建和执行测试套件。 @RunWi...
学习使用 Maven 配置 JUnit 5、不同的 JUnit 模块以及如何使用这些模块来创建和执行测试。 请注意,JUnit 5 在运行时至少需要 Java 8。 1. JUnit 5 Mav...
在此 JUnit 教程 中,学习创建和执行 junit 参数化测试。参数化测试是正常测试,它使用不同的测试参数一遍又一遍地执行。它可以帮助开发人员节省使用不同输入类型执行相同测试以测试功能稳健性...
在这个 JUnit 5 教程中,我们将学习如何在新支持的 创建 XML 报告 -team/open-test-reporting"&gtl;打开测试报告格式并以旧格式生成它们以实现向后兼容性。 ...
编写 JUnit 有序测试 被认为是不好的做法。但是,如果您遇到测试用例排序是唯一出路的情况,那么您仍然可以使用 MethodSorters 类。 1. JUnit 方法分类器 MethodSo...
学习编写具有超时行为的 JUnit 测试。如果测试没有在给定的时间限制内完成执行,那么它的执行将被强制停止并且测试将被标记为失败。 1.为什么测试需要超时? 我们可能需要测试应用程序的故障安全行...
学习使用 Gradle 配置 JUnit 5、它的不同模块以及如何使用它们来创建和执行测试。 请注意,JUnit 5 在运行时需要 Java 8。 1. JUnit 5 Gradle 依赖 要通...
JUnit 5 @ BeforeAll 注解表示一个方法,它是一个生命周期方法。 @BeforeAll 是 JUnit 4 中 @BeforeClass 注解的替代品。 1. @BeforeAl...
@AfterEach 注释用于表示被注释的方法应该在每个 @Test @RepeatedTest、@ParameterizedTest 或@TestFactory 当前类中的方法。 JUnit ...