0 1

如何测试私有方法抛出异常的情况3

比如有如下方法:
private Response getResponse(Request request) throws XXXException
{
    if (request == null)
    {
        throw new XXXException();
    }
    //To Do
}


如果要使用jUnit测试这种抛出异常的情况,应该怎么写?
2011年6月09日 16:05

2个答案 按时间排序 按投票排序

0 1

采纳的答案

		YourClazz instance = new YourClazz();
		Method method = instance.getClass().getDeclaredMethod("getResponse",
				Request.class);
		method.setAccessible(true);
		try {
			method.invoke(instance, new Object[] { null });
			Assert.assertTrue(false);
		} catch (Exception e) {
			if(e.getCause() instanceof XXXException){
				Assert.assertTrue(true);
				return;
			}
			e.getCause().printStackTrace();
		}
		Assert.assertTrue(false);

可以使用反射

2011年6月09日 17:04
0 0

首先你的私有方法给谁用,测试上层方法就好了。

2011年6月09日 17:25

相关推荐

    JUnit中如何测试异常.doc

    针对异常的测试同样至关重要,因为我们需要确认我们的代码在遇到错误情况时能正确地抛出预期的异常。JUnit 是一个广泛使用的 Java 单元测试框架,它提供了丰富的功能来帮助开发者编写和执行测试用例。在本文中,我们...

    Android自定义抛出异常的方法详解

    相反,`throws`是在方法签名中使用,用来声明该方法可能抛出的异常。例如: ```java public void someMethod() throws IOException { // 方法体 } ``` 这意味着调用这个方法时,需要处理`IOException`,或者在...

    实现一个求解一元二次方程的类,该类包含三个成员变量和一个求解一元二次方程解的函数,该函数需要抛出异常(1.无解的异常 2二次项系数为0的异常))

    在编程领域,设计一个类来解决一元二次方程是一项常见的任务,这涉及到数学和编程基础知识的结合。一元二次方程通常表示为 `ax² + ...同时,通过抛出异常,我们能清晰地表明问题所在,这对于调试和错误处理非常有用。

    JAVA异常大全

    12. **方法未找到异常:NoSuchMethodException** - 当尝试调用一个不存在的方法时,会抛出此异常。 除了这些常见异常,Java还提供了一些其他类型的异常,如: 13. **AbstractMethodError** - 当应用程序试图调用一...

    JAVA常见异常解析,面试用

    - **java.sql.SQLException**:处理数据库操作时,当发生错误或异常情况时抛出。 - **java.io.IOException**:表示输入/输出操作失败或中断时抛出。 - **java.lang.NoSuchMethodException**:当试图调用不存在的方法...

    C异常处理(精).pdf

    在给定的示例中,根据输入的测试代码,程序会抛出不同类型的异常,如`throw myStru`或`throw &myStru`。抛出对象的方式会影响其拷贝构造函数的调用情况。 2. **捕获异常**:使用`catch`关键字可以捕获特定类型的...

    异常的类型

    - **示例场景**:例如,尝试从外部代码访问一个类的私有方法时会抛出此类异常。 ##### MissingMemberException - **描述**:当尝试访问一个无效版本的DLL中定义的成员时抛出`MissingMemberException`。 - **示例...

    java 异常种类总结【转】.docx

    SecturityException 是一种违背安全原则异常,指的是在程序中违背了安全原则,例如尝试访问私有变量或方法时抛出的异常。 7. 文件已结束异常:EOFException EOFException 是一种文件已结束异常,指的是在程序中...

    Java开发过程中常见异常

    13. **抽象方法错误:AbstractMethodError** - 当应用程序试图调用一个抽象方法,而该方法在子类中没有具体实现时,会抛出此异常。 14. **断言错误:AssertionError** - 用于指示一个断言失败,通常在测试和调试...

    反射私有内部类的例子

    - 在使用反射访问私有内部类时,需要确保有足够的权限,否则可能会抛出安全异常。 - `setAccessible(true)`方法会禁用访问控制检查,应该谨慎使用。 - 使用反射可能会带来性能开销,因此不建议频繁使用。 - 当涉及到...

    java异常汇总.txt

    当一个类尝试非法访问另一个类的私有成员时,会抛出`IllegalAccessError`。这可能由类加载顺序或访问控制修饰符不当引起。 #### 20. IncompatibleClassChangeError - 类变更不兼容错误 当类实例的运行时类型与预期...

    c,c++异常处理

    - **new失败时抛出异常**: 当内存分配失败时,`new`操作会抛出`std::bad_alloc`异常。 - **delete操作**: `delete`操作不会抛出异常,但如果`new`操作没有成功,那么尝试`delete`可能会导致未定义行为。 #### 6. ...

    常见的java异常

    6. **java.lang.IllegalAccessException**:当尝试访问受保护的成员(如私有方法或字段)或构造器,而当前代码没有适当的访问权限时,会抛出此异常。确保你的代码具有正确的访问权限或者使用了适当的反射机制。 ...

    JAVA常见异常整理.docx

    Java异常处理是编程中至关重要的部分,它帮助程序员在程序执行过程中捕获并处理错误情况。在Java中,异常是通过类的实例来表示...同时,`throws`关键字用于声明方法可能会抛出的异常,以便调用者知道需要处理这些异常。

    java常见异常总结

    - **示例**:使用`Class.getMethod("nonexistentMethod", null)`尝试获取不存在的方法会抛出此异常。 - **预防措施**:确保方法确实存在且拼写正确。 #### 12. `java.lang.NoSuchFieldException` - **定义**:当...

    实现一个自定义异常类IntegerException

    对于不合理的情况,`IntegerException`被抛出并被捕获,异常信息被打印出来,展示了异常处理的有效性。 总结而言,通过实现`IntegerException`自定义异常类,并在`People`类的`setAge`方法中使用,我们有效地控制了...

    java所有运行时异常以及错误.

    12. **方法未找到异常:NoSuchMethodException** - 调用一个不存在的方法时,会抛出此异常。 13. **抽象方法错误:AbstractMethodError** - 当应用程序试图调用一个抽象方法时,表示编译时和运行时的类路径不匹配。 ...

    Java 异常问题,深入研究.docx

    - `IllegalAccessException`:在尝试访问私有类、字段或方法时,如果没有适当的访问权限,就会抛出此异常。 - `NoSuchFieldException`:尝试访问一个不存在的字段时抛出。 - `NoSuchMethodException`:当试图调用一...

Global site tag (gtag.js) - Google Analytics