`

JUnit 的Failure和Error

阅读更多

      Failure指的是由于预期的结果与实际运行的测试的结果不同而导致的,例如当使用assertEquals()或其它assertXXX()方法断言失败时,就会报出Failure,如果发现Faulure,你就要去检查你的测试方法或者是被测试方法中编写的逻辑是否有误。

      Error指的是编写程序时没有考虑到的问题。在执行测试的断言之前,程序就因为某种类型的意外而停止,比喻说我们在操作数组的时候,因为存取超出索引会引发ArrayIndexOutOfBoundsException,这个时候程序就会报出Error,程序将无法运行下去,提前结束,这个时候你要检查被测试方法中是不是有欠缺考虑到地方。

测试示例如下:

package com.reiyen.junit;

import static org.junit.Assert.*;
import org.junit.BeforeClass;
import org.junit.Test;

public class TestErrorFailure {

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
	}

	@Test
	public void errorTest(){
		int [] arr={1,2,3};
		System.out.println("出现error:"+arr[4]);
                assertEquals(3, arr[0]);
	}
	
	@Test
	public void failureTest(){
		int [] arr={1,2,3};
		assertEquals(3, arr[0]);
	}
}

 当运行errorTest测试方法时,测试结果如下所示:

java.lang.ArrayIndexOutOfBoundsException: 4
    at com.reiyen.junit.TestErrorFailure.errorTest(TestErrorFailure.java:16)

 当运行failureTest测试方法时,测试结果如下所示:
    java.lang.AssertionError: expected:<3> but was:<1>
    at org.junit.Assert.fail(Assert.java:71)
 failureTest在执行断言的时候出现了预想值与实际值不同
errorTest在执行断言之前就出现了预想不到的情况,根本就执行不到断言的部分

分享到:
评论

相关推荐

    junit的jar包

    junit.framework.ComparisonFailure.class junit.framework.JUnit4TestAdapter.class junit.framework.JUnit4TestAdapterCache.class junit.framework.JUnit4TestCaseFacade.class junit.framework.Protectable....

    junit工具使用JUnit 是针对 Java 语言的一个单元测试框架,它被认为是迄今为止所开发的最重要的第三方 Java 库。 它已经成为Java语言事实上的标准单元测试库。

    3.8. Failure 和 Error 在测试过程中,如果断言失败,JUnit 会记录一个 `Failure`;而如果测试方法中出现未捕获的异常,记录的是 `Error`。这些信息有助于开发者定位问题。 总结,JUnit 是 Java 单元测试的核心工具...

    junit 4测试框架培训资料

    - 测试失败分为`failure`和`error`两种情况,`failure`表示断言失败,`error`通常表示代码运行时出现异常。 8. 修复测试失败: 根据JUnit提供的测试失败信息,定位问题并修复被测试的代码,然后重新运行测试,确保...

    JUnit培训

    JUnit将测试失败分为两种情况:failure和error。Failure通常是由于断言失败,表示测试点存在问题;而error则是由于代码异常,可能源于测试代码本身的问题或被测试代码中的隐藏bug。 **Fixture** Fixture是指测试...

    JUNIT学习资料

    3. **TestResult**:负责收集`TestCase`执行的结果,并将结果分类为预期失败(Failure)和非预期错误(Error),同时将测试结果转发给监听器(`TestListener`)处理。 4. **TestRunner**:客户对象调用的起点,负责...

    JUnit 使用的最佳实践

    测试失败分为两种情况:`Failure` 和 `Error`。`Failure` 指断言失败,意味着程序的实际输出与预期不符,揭示了潜在的问题;而 `Error` 通常是代码异常导致,可能源自测试代码或被测试代码中的错误,可能是隐藏的 ...

    Python库 | junitparser-0.3.tar.gz

    对于每个测试用例,junitparser提供了详细的属性,如测试用例的名字(`name`)、类名(`classname`)、运行时间(`time`),以及如果失败或出现错误,还可以获取失败消息(`failure.message`)和错误信息(`error.message`)。...

    CppUnit源码解读.doc

    3. **错误处理(Error Handling)**:包含`TestFailure`、`SourceLine`、`Exception`以及特定异常类型,如`NotEqualException`,这些类用于捕获和报告测试中的错误。 4. **断言(Assertions)**:通过`Asserter`和`...

    junitparser:轻松解析JUnitxUnit结果XML文件

    `JUnitXml.fromfile()`方法用于读取XML文件并创建一个JUnitXml对象,其中包含了所有的测试套件(suites)和测试用例(cases)。你可以遍历这些对象来获取每个测试的详细信息,如测试名称、持续时间、错误或失败信息...

    SpringBoot使用Ajax实现登录

    `spring-boot-starter-test`用于单元测试,但排除了Junit Vintage Engine,因为这里主要关注生产环境。最后,`lombok`是为了简化Java对象的创建,通过注解实现getter、setter等方法。 在`application.yml`配置文件...

    JAVA笔记JAVA笔记.docx

    - `Failure`通常指测试失败,即期望的结果与实际结果不符。 - `Error`表示程序本身出现了异常,这通常是更严重的问题。 #### JavaEE技术 - **JDBC注意事项**: - 在完成数据库操作后,应确保关闭所有打开的连接...

Global site tag (gtag.js) - Google Analytics