2015-11-19 2 views
0

Я использую JUnit 4.7 с использованием MavenКак утверждают UserDefined Исключения в JUNIT4.7

<dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.7</version> 
    </dependency> 

У меня есть метод для загрузки файла, и я использую свои собственные UserDefined исключения, как показано ниже

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"); 
} 

Во всех приведенных выше способов я не смог пройти тестовые случаи, и я видел эти решения, но они мне не полезны

Assert Exception, Testing Exception

В моем основном коде, т.е. в uploadFile методы я должен использовать только try, catch не throws

ответ

1

Проблема заключается в том что вы не бросать исключение за пределами вашего вызова метода :

Вот упрощенный код с просто броском и уловкой, чтобы увидеть его более четко

try { 
    ... 

     throw new FileSizeExceedLimitException("File size should not exceed 10 MB"); 
    ... 

    } catch (FileSizeExceedLimitException e) { 
    e.printStackTrace(); 
} 

Вы ловите и глотаете исключение. Удалите try-catch и сделайте свой метод throws FileSizeExceedLimitException, и тест должен работать

+0

спасибо за ответ, но в моем основном коде, то есть в методе 'uploadFile', мне нужно использовать только' try', 'catch' not' throws' –

Смежные вопросы