jeudi 19 novembre 2015

How to assert Userdefined Exceptions in JUNIT4.7

I'm using JUNIT 4.7 using maven

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

I have my method for uploading a file and I'm using my own userdefined exceptions as below

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

And my User defined exceptions looks like below

public class FileSizeExceedLimitException extends Exception{
    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    public FileSizeExceedLimitException(String s){
        super(s);
    }
}

And my Test cases are looks like below

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

Method 2 :

@Test(expected = FileFormatException.class)
public void testUploadFile() {
    operations.uploadFile("01 Big Data Hadoop Intro V 2.0.docx");
}

Method 3 :

@Test(expected = FileFormatException.class)
public void testUploadFile() throws FileFormatException{
    operations.uploadFile("01 Big Data Hadoop Intro V 2.0.docx");
}

In all the above methods i'm unable to pass the test cases,and i have seen these solutions but they are not useful for me

Assert Exception, Testing Exception

In my main code i.e in uploadFile method i have to use only try, catch not throws

Aucun commentaire:

Enregistrer un commentaire