# Unit-Test für eine Methode



## suryoyo (18. Apr 2021)

Hallo liebe Gemeinde,

ich bin dabei mit Unit-Tests zu schreiben und Habe eine Methode,Habe eine Methode, wo ich beim besten Willen nicht weiß, wie ich es Testen soll. 
Die Vorgabe lautet teste Mithilfe eines DataProvider. Hier die zu betastende Methode:


String ermittleProzent (Number prozent){
    if ( prozent == null){
        return "";
    }else{
        return prozent + " %";
    }
}


Ich habe keine Ahnung wie ich da vorgehen soll, die anderen Methoden hatten mehrere mögliche Attribute die ich Testen konnte. Aber das hier zwingt mich in die Beine. Hat einer eine Idee?

Mein Test sieht so aus:

@test (dataProvider = "liefereErmittelterProzentsatz")
public void testErmittleProzent (Number prozent, String prozentZeichen){
        //given + when
        String result = underTest.ermittleProzent(prozent)

        //then
        Assert.assertEquals(prozent,prozentZeichen);
        }

Mein DataProvider sieht so aus:

@DataProvider
publi Object [][] liefereErmittelterProzentsatz(){
    return new Object [][]{
        {null, null},
        {" %", " %"};
        }
        }

Mit den Parametern null, null klappt es aber ich glaube ich mache da was falsch. Für Hilfe wäre ich dankbar.


----------



## kneitzel (18. Apr 2021)

Der DataProvider liefert doch die Parameter für die Methode. Und wenn die Number, String erwartet, dann solltest du das auch entsprechend geben und nicht zwei Strings.

Und bei null wird der leere String zurückgegeben und nicht null. Der DataProvider liefert also den Input + das erwartete Ergebnis.


----------



## suryoyo (18. Apr 2021)

Valider Punkt. Mit dem Datentyp Numbers habe ich noch keine Erfahrungen gemacht. Danke für den Hinweis.


----------

