java Junit-预期格式错误的URLException,但获得未声明的ThrowableException

0mkxixxg  于 2023-01-11  发布在  Java
关注(0)|答案(1)|浏览(130)

我有一个类ServerConnection.java,它有以下方法

private String getUrl() throws MalformedURLException {
  // some operations and condition
    URL url = getDNSBasedUrl();
}

public String getDNSBasedUrl() throws MalformedURLException{
if(this.nameSpace==null)
throw new MalformedURLException("undefined namespace");
return this.nodeName + this.nameSpace;
}

测试用例编写如下

@Test(expected = MalformedURLException.class)
public void gctNameSpace_Exception(){
 ServerConnection connection = new ServerConnection();
 connection.setNameSpace(null);
 String s = connection.getDNSBasedUrl();
}

我期待MalformedURLException,但得到以下错误。

java.lang.Exception: Unexpected exception, expected<java.net.MalformedURLException> but was<java.lang.reflect.UndeclaredThrowableException>

不想改变方法抛出的异常,getUrl()在很多地方被引用。

nue99wik

nue99wik1#

当您的测试执行可能抛出MalformedURLException的方法时,要求测试方法使用try-catch或try-finally处理它,或者简单地声明要抛出的异常,如

@Test(expected = MalformedURLException.class)
public void gctNameSpace_Exception() throws MalformedURLException {
  ServerConnection connection = new ServerConnection();
  connection.setNameSpace();
  String s = connection.getDNSBasedUrl();
}

相关问题