PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Testklasse erstellen



snlilli
13-01-2007, 19:19
Hallo allerseits,

ich bin grade dabei eine Testklasse für mein Notizbuch zuerstellen.
So weit läuft sogar alles ;) ..bis auf die Methode zeigeNotiz.

Wenn jemand Lust hat sich das mal anzugucken hier der Quelltext :

Notizbuch :


import java.util.List;
import java.util.ArrayList;
import java.util.HashSet;

/**
* Diese Klasse beschreibt beliebig lange Notizlisten.
* Ein Notizbuch ist wie ein Ringhefter organisiert: Eine Notiz
* kann an beliebiger Stelle in die Liste eingefügt werden.
* Benutzer können auf Notizen anhand ihrer Position zugreifen.
* Die erste Notiz hat die Position 0.
*
* @author David J. Barnes, Michael Kölling, Axel Schmolitzky, Petra Becker-Pechau
* @version 2005-12
*/
public class Notizbuch
{
// Liste für eine beliebige Anzahl an Notizen.
private List<String> _notizen;

/**
* Ein neues Notizbuch enthält keine Notizen.
*/
public Notizbuch()
{
_notizen = new ArrayList<String>();
}

/**
* Speichere die gegebene Notiz, indem sie an das Ende der
* Notizliste dieses Notizbuchs angehängt wird.
* @param notiz die zu speichernde Notiz.
*/
public void speichereNotiz(String notiz)
{
_notizen.add(notiz);
}

/**
* Hefte die gegebene Notiz an der angegebenen Position ein.
* @param position die Position der neuen Notiz.
* @param notiz die zu speichernde Notiz.
*/
public void speichereNotizAnPosition(int position, String notiz)
{
if (position < 0 || position > anzahlNotizen())
{
// Keine gültige Position, nichts zu tun.
System.out.println("Ungültige Position!");
}
else
{
// Die Position ist gültig, wir können die Notiz einfügen.
_notizen.add(position, notiz);
}
}

/**
* @return die Anzahl der Notizen in diesem Notizbuch.
*/
public int anzahlNotizen()
{
return _notizen.size();
}

/**
* Gib eine Notiz auf die Konsole aus.
* @param position die Position der Notiz, die gezeigt werden soll.
*/
public void zeigeNotiz(int position)
{
if (position < 0 || position >= anzahlNotizen())
{
// Keine gültige Position, nichts zu tun.
System.out.println("Ungültige Position!");
}
else
{ // Die Position ist gültig, wir können die Notiz ausgeben.
System.out.println(_notizen.get(position));
}
}

/**
* Gib die Notiz an der gegebenen Position zurück. Bei einer ungültigen
* Position wird null geliefert.
* @param position die Position der Notiz, die zurückgegeben werden soll.
*/
public String gibNotiz(int position)
{
String notiz = null;
if (position < 0 || position >= anzahlNotizen())
{
// Keine gültige Position, nichts zu tun.
System.out.println("Ungültige Position!");
}
else
{
// Die Position ist gültig, wir können die Notiz zurückgeben.
notiz = _notizen.get(position);
}
return notiz;
}
}


und hier meine Testklasse :



/**
* The test class NotizbuchTest.
*
* @author (your name)
* @version (a version number or a date)
*/
public class NotizbuchTest extends junit.framework.TestCase
{
private Notizbuch _notiz;
/**
* Default constructor for test class NotizbuchTest
*/
public NotizbuchTest()
{
_notiz = new Notizbuch();
}

/**
* Sets up the test fixture.
*
* Called before every test case method.
*/
protected void setUp()
{
}

/**
* Tears down the test fixture.
*
* Called after every test case method.
*/
protected void tearDown()
{
}

public void testAssertTrue()
{
Notizbuch notizbuc2 = new Notizbuch();
}
/**
* Überprüft ob der Initialwert zurückgegeben wird.
*/
public void testAnzahlNotizen()
{
assertEquals(0, _notiz.anzahlNotizen());
}

public void testSpeichereNotiz()
{
_notiz.speichereNotiz("hallo");
assertEquals("hallo", _notiz.gibNotiz(0));
}

public void testGibNotiz(int position)
{
_notiz.speichereNotiz("hallo");
assertEquals("hallo", _notiz.gibNotiz(0));

}

public void testZeigeNotiz();
{
_notiz.speichereNotiz("java");
assertEquals("java");
}

public void testAssertSame()
{
}
}




Über einen hilfreichen Tip wäre ich wie immer sehr dankbar.

LG Lilli

Servet
18-01-2007, 10:17
Hi!

Meinst du testZeigeNotiz() oder zeigeNotiz() ??
Wenn du die test-Methode meinst kann ich erstmal nur sagen, dass ich keine Ahnung von JUnit habe aber warum erwartest du da "java" zurück? Die Methode ist doch als void deklariert.

Außerdem sollte doch ...

public void zeigeNotiz(int position) {
System.out.println(gibNotiz(position));
}

... auch funktionieren und du hast nicht zweimal denselben Code geschrieben.
Die Methode, die an einer bestimmten Position einfügt überschreibt vorhandene Einträge. Das weißt du, gelle? Könntest vor dem Einfügen auf !=null abprüfen und dann einfügen.

Ciao,
Servet