2017-12-01 3 views
1

Ich habe eine Implementierung einer einzelnen verknüpften, verketteten Liste. Ich habe eine ListIterator für diese Klasse geschrieben. Wie kann ich testen, ob meine Implementierung für die ListIterator funktioniert? Bisher habe ich eine for-each loop für eine Instanz meiner verketteten Liste verwendet, die funktioniert. Auf welche anderen Arten muss ich es testen?Wie testen Sie, dass ein Iterator/ListIterator funktioniert?

+0

Testen Sie, dass alle Methoden genauso funktionieren wie ein ListIterator auf 'ArrayList', auf einer Vielzahl von Eingabelisten (leere, Singleton, wiederholte Elemente usw.). –

+0

Werfen Sie einen Blick auf [Guava-Testlib] (https://blog.codefx.org/techniques/testing/test-collection-implementations-with-guava/). Es enthält einige Testkabel für Iteratoren. – Henrik

Antwort

1

Normalerweise möchten Sie alle Randfälle zusätzlich zum "normalen" Fall testen. Vielleicht:

  • Test mit einer leeren Liste
  • Test mit einigen Nullen in
  • Test wird eine Ausnahme ausgelöst, wenn hasNext() gibt falschen und Sie versuchen, ein anderes Element zu holen
  • Test remove()
  • Test remove(), wenn das letzte Element
  • Test rufenden remove() zweimal Entfernen löst eine Ausnahme

usw.

+0

Wie würde ich testen, dass die 'previous()' Methode, die ich im Iterator geschrieben habe, funktioniert? – user8967903

+1

Viel wie next()? :) Mache eine Liste, gehe ein bisschen vorwärts und rückwärts? Testen Sie die Kantengehäuse in der entgegengesetzten Richtung. – xs0

Verwandte Themen