Esempio di caso di prova Junit per codice di analisi Sax


Ho scritto il codice parser Sax in java. Ho due classi una classe di gestore che esegue effettivamente l'analisi ed estende la classe di gestore predefinita del parser Sax. L'altra classe è la classe parser che imposta la proprietà e le caratteristiche di sax parser, imposta il gestore, imposta la classe di eccezione e classe il metodo di analisi. Voglio scrivere la classe di test Junit per questo metodo. Qualcuno può aiutarmi con la risorsa su come dovrei scrivere il caso di test Junit per questo?

Posso condividere il mio codice ma penso di averlo spiegato, quindi se potessi aiutarmi con l'esempio sul caso di test Junit?

Author: Nikhil Dhirmalani, 2020-01-20

2 answers

Considera il test del contratto della tua libreria. Fondamentalmente SAX parse dovrebbe consentire l'analisi dell'XML con vari sapori (gestiti da configurazioni). Quindi il modello del test può essere:


public class ParserTest {

    @Test
    public void testParse() {
        // given:
        SaxParser underTest = createParser(); // create with configurations

        // when:
        actualResult = underTest.parseXml(<XML_FILE_GOES_HERE>);

        // then:
        assertThat(actualResult, matchesContent());
     } 
}

Puoi preparare una serie di test come questo per coprire vari casi che il parser sax dovrebbe gestire (tag gerarchici, attributi e così via).

Puoi trattare 2 classi (il parser e la configurazione) come un componente e scrivere un test unitario che le coprirà sia. Quindi non c'è bisogno di mockito in questo caso (che hai specificato nei tag della domanda).

Inoltre è possibile trattare una configurazione come un componente separato e verificare che produca la configurazione corretta, di nuovo test per il contratto comportamentale.

Per quanto riguarda le asserzioni di XML. Potresti trovare utile libreria di unità xml

 1
Author: Mark Bramnik, 2020-01-20 17:37:22

Utilizzare i metodi assertXXX per verificare i valori nell'oggetto di output, utilizzare @Expected per gli scenari di eccezione.

Per il link di esempio che hai menzionato qui, possiamo controllare la dimensione di arraylist in assertEquals e assertTrue per la lista non dovrebbe essere empty.In oltre a questo possiamo controllare assertEquals per il contenuto negli elementi in ArrayList.Spero che sia sufficiente !!

 0
Author: Rajeev Akotkar, 2020-01-20 17:33:59