[英]How to assert Userdefined Exceptions in JUNIT4.7
我正在使用Maven使用JUNIT 4.7
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
</dependency>
我有上传文件的方法,并且使用了自己的用户定义的异常,如下所示
public void uploadFile(String fileName) {
File file = null;
try {
file = new File(DIR + "/" + fileName);
// If the file size exceeds 10 MB raise an exception
if ((file.length() / MB) > 10)
throw new FileSizeExceedLimitException("File size should not exceed 10 MB");
else {
System.out.println("File Uploaded Successfully");
}
} catch (FileSizeExceedLimitException e) {
e.printStackTrace();
}
}
我的用户定义的异常如下所示
public class FileSizeExceedLimitException extends Exception{
/**
*
*/
private static final long serialVersionUID = 1L;
public FileSizeExceedLimitException(String s){
super(s);
}
}
我的测试用例如下所示
方法1:
DocxOperations operations = null;
@Rule
public final ExpectedException exception = ExpectedException.none();
@Before
public void before() {
operations = new DocxOperations();
}
@Test
public void testUploadFileSize() {
exception.expect(FileSizeExceedLimitException.class);
operations.uploadFile("Bigdata.docx");
}
方法2:
@Test(expected = FileFormatException.class)
public void testUploadFile() {
operations.uploadFile("01 Big Data Hadoop Intro V 2.0.docx");
}
方法3:
@Test(expected = FileFormatException.class)
public void testUploadFile() throws FileFormatException{
operations.uploadFile("01 Big Data Hadoop Intro V 2.0.docx");
}
在上述所有方法中,我无法通过测试用例,并且我已经看到了这些解决方案,但它们对我没有用
在我的主要代码,即
uploadFile
方法我只有使用try
,catch
不会throws
问题是您没有在方法调用之外抛出异常:
这是简单的代码,只需抛出即可捕获,以更清晰地看到它
try {
...
throw new FileSizeExceedLimitException("File size should not exceed 10 MB");
...
} catch (FileSizeExceedLimitException e) {
e.printStackTrace();
}
您正在捕获并吞下异常。 删除try-catch并使您的方法throws FileSizeExceedLimitException
,并且测试应该可以进行
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.