Schreiben Junit-test zu decken, Ausnahme-und catch-block

Habe ich geschrieben Junit-Testfall für folgende Funktion. Wenn die Option aktiviert ist JACOCO Testabdeckung. Es zeigt nur try-block ist bedeckt von test-Fall. Ich bin Neuling auf dem schreiben von Testfällen. Wie die exceptions und catch-block kann abgedeckt werden, die in Testfällen

Hier ist eine Methode

  public static List<Student> readCsvFile(String fileName)
    {

       BufferedReader fileReader = null;

//logic to read file    
}
catch (Exception e)
{
   System.out.println("Error in CsvFileReader !!!");
   e.printStackTrace();
        } finally
        {
            try
            {
                fileReader.close();
            } catch (IOException e)
            {
                System.out.println("Error while closing fileReader !!!");
                e.printStackTrace();
            }
        }
        return students;
    }

Und TestMethod

@Test
    public void ReadCsvFileTest()
    {
        String fileName = "test.csv";
        List<Student> result = new ArrayList<Student>();
        result = CsvFileReader.readCsvFile(fileName);

        Student student1 = null;

        Iterator<Student> it = result.iterator();
        while (it.hasNext())
        {
            Student s = it.next();
            if ("471908US".equals(s.getId()))
            {
                student1 = s;
                break;
            }
        }

        assertTrue(student1 != null);
    }
  • Du bekommst nur die Abdeckung für die exception-block wird eine Ausnahme geworfen.
  • CsvFileReader.readCsvFile("notexisting.csv") sollten Sie die fangen
  • Als Kompass empfehlen Sie eine Ausnahme innerhalb des try-Blocks während der Testausführung. Normalerweise würde ich die Verwendung eines mocking-Frameworks wie Mockito um dies zu erreichen. Aber vielleicht ist in Ihrem Fall reicht es aus, übergeben Sie einen ungültigen Dateinamen.
InformationsquelleAutor ronypatil | 2016-12-12
Schreibe einen Kommentar