gpt4 book ai didi

java - 使用 JUnit 4 测试自定义异常的错误代码

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:54:49 24 4
gpt4 key购买 nike

我想测试异常的返回码。这是我的生产代码:

class A {
try {
something...
}
catch (Exception e)
{
throw new MyExceptionClass(INTERNAL_ERROR_CODE, e);
}
}

以及相应的异常:

class MyExceptionClass extends ... {
private errorCode;

public MyExceptionClass(int errorCode){
this.errorCode = errorCode;
}

public getErrorCode(){
return this.errorCode;
}
}

我的单元测试:

public class AUnitTests{
@Rule
public ExpectedException thrown= ExpectedException.none();

@Test (expected = MyExceptionClass.class,
public void whenRunningSomething_shouldThrowMyExceptionWithInternalErrorCode() throws Exception {
thrown.expect(MyExceptionClass.class);
??? expected return code INTERNAL_ERROR_CODE ???

something();
}
}

最佳答案

简单:

 @Test 
public void whenSerialNumberIsEmpty_shouldThrowSerialNumberInvalid() throws Exception {
try{
whenRunningSomething_shouldThrowMyExceptionWithInternalErrorCode();
fail("should have thrown");
}
catch (MyExceptionClass e){
assertThat(e.getCode(), is(MyExceptionClass.INTERNAL_ERROR_CODE));
}

这就是你所需要的:

  • 您不想期待那个特定的异常,因为您想要检查它的某些属性
  • 您知道您想要进入那个特定的捕获 block ;因此,当调用没有抛出时你就失败了
  • 您不需要任何其他检查 - 当该方法抛出任何其他异常时,JUnit 无论如何都会将其报告为错误

关于java - 使用 JUnit 4 测试自定义异常的错误代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43179242/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com