gpt4 book ai didi

java - 在 Java 中为自定义检查异常编写 JUnit 测试用例?

转载 作者:搜寻专家 更新时间:2023-10-31 08:10:59 25 4
gpt4 key购买 nike

我正在为我的类编写一个测试用例,该用例具有抛出异常的方法(检查异常和运行时异常)。我已经按照此 link. 中的建议尝试了不同的可能测试方法.看起来它们似乎只适用于运行时异常。对于已检查的异常,我需要执行 try/catch/assert,如下面的代码所示。有没有其他方法可以尝试/捕获/断言/。您会注意到 testmethod2() 和 testmethod2_1() 显示编译错误,但 testmethod2_2() 不显示使用 try/catch 的编译错误。

class MyException extends Exception {

public MyException(String message){
super(message);
}
}


public class UsualStuff {

public void method1(int i) throws IllegalArgumentException{
if (i<0)
throw new IllegalArgumentException("value cannot be negative");
System.out.println("The positive value is " + i );
}

public void method2(int i) throws MyException {
if (i<10)
throw new MyException("value is less than 10");
System.out.println("The value is "+ i);
}

}

测试类:

import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;


public class UsualStuffTest {

private UsualStuff u;

@Before
public void setUp() throws Exception {
u = new UsualStuff();
}

@Rule
public ExpectedException exception = ExpectedException.none();

@Test(expected = IllegalArgumentException.class)
public void testMethod1() {
u.method1(-1);
}

@Test(expected = MyException.class)
public void testMethod2() {
u.method2(9);
}

@Test
public void testMethod2_1(){
exception.expect(MyException.class);
u.method2(3);
}

public void testMethod2_3(){
try {
u.method2(5);
} catch (MyException e) {
assertEquals(e.getMessage(), "value is less than 10") ;
}
}
}

最佳答案

@Test(expected = MyException.class)
public void testMethod2() throws MyException {
u.method2(9);
}

关于java - 在 Java 中为自定义检查异常编写 JUnit 测试用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20336657/

25 4 0
文章推荐: java - do-while 和 while 比较
文章推荐: javascript - 如何使用任何可能的魔法将粘贴在 <textarea> 中的长文本分成
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com