Riesenproblem mit Test

midstar
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 172
Registriert: 29. Dez 2013 17:00

Riesenproblem mit Test

Beitrag von midstar »

Hey, es nähert sich alles dem Ende und ich werde aus einem einzigen Test nicht schlau.

Bzw eigentlich sind es alle MoveON(Dirt,Sandstone...) Tests, in der Klasse IControllerMovementTest.

Dieser Test erstellt nach meinem Wissen einen Miner, lässt diesen in alle Himmelsrichtungen Felder abbauen und Kontrolliert das ergebnis?



Soweit so gut. Macht er, keine Fehler. Mein Ausgabefehler ist ein ANGEBLICH fehlerhaftes Inventory. Sprich er testet ob mein Inventar mit dem Inventar übereinstimmen sollte.

Tut es! Bis auf die Ausnahme der Mineralien die durch Zufall auf dem Feld liegen können. Die werden im Test nicht berücksichtigt!!

Aber das ist sinnlos? Denn es sollen ja auf diesen Feldern auch Mineralien liegen dürfen. Wenn ich eben diese Mineralieninitialisierung in meinem Programm weglasse, dann ist der Test fehlerfrei bestanden.


Was soll ich jetzt tun? Ich muss sagen entweder ich irre mich, oder ich bin von diesen Tests echt enttäuscht.. denn ein Fehler liegt ja bei Gott absolut nicht vor..


Kurzfassung nochmal: Ausgabe: Inventory wrong, should contain: 000000 contains 000001 1 ist in dem fall jetzt silber, kann aber auch platin und co sein. Wenn ich keine Mineralien initialisiere kein Fehler. Egal wann ich die nach Spielstart auf die Felder lege, jedesmal der gleiche Fehler. Was tun?

Gast
Gast

Re: Riesenproblem mit Test

Beitrag von Gast »

Im zweifel legst du mineralien auf felder aif denen das nicht möglich sein sollte (source etc.)

midstar
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 172
Registriert: 29. Dez 2013 17:00

Re: Riesenproblem mit Test

Beitrag von midstar »

nein, das feld das getestet wird ist zB Dirt. ausserdem liegen auf Source und Landslide keine Mineralien. Auf Empty Feldern werden keine kreiert.

Das war es nicht, aber danke für deinen Versuch mir zu helfne, ich verzweifel langsam..

midstar
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 172
Registriert: 29. Dez 2013 17:00

Re: Riesenproblem mit Test

Beitrag von midstar »

Boah ich tick noch aus.. das mit den Tests ist voll fürn a***

Begründung: Nächster Test mit Probleme. Dynamite. Der überprüft ob ich felder in die Luft jage, schlägt fehl. Aber nur weil der darauf reagiert dass mein miner sich in der Zeit doch ebenfalls bewegen muss?! ...

Ich geh ins bett.. für tipps wär ich weiterhin dankbar..

midstar
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 172
Registriert: 29. Dez 2013 17:00

Re: Riesenproblem mit Test

Beitrag von midstar »

Es lässt mich nicht in ruhe. Es sind 4 doofe Tests die einfach nicht funktionieren wollen :/

Fehlerausgabe genau: Am Beispiel Test: moveOnDirtFieldTest

The state after executing: 38 in state: main.Model@70a162fa should be main.Model@24098fc
The inventory of the player is incorrect. Expected: 00000000000 but was 00000000001
----
java.lang.AssertionError

at org.junit.Assert.fail(Assert.java:91)



Das ist die Fehlerausgabe. (Weltuntergang).

Chuechco
Mausschubser
Mausschubser
Beiträge: 62
Registriert: 4. Jan 2014 13:44

Re: Riesenproblem mit Test

Beitrag von Chuechco »

Dieser moveOnDirtFieldTest führt zu beginn ein reset aller Felder aus (resetFields(...)).
Dabei wird jedes Feld durchgegangen und folgende Methoden ausgeführt:

model.setTypeOfField(new Position(x, y), fieldType);
model.removeAllItemsFromField(new Position(x0+x, y0+y));

Das heißt, dass jedes Feld auf Dirt gesetzt wird und alle Items gelöscht werden. Es sollte somit unmöglich sein, dass der Miner beim Bewegen im Untergrund auf Mineralien stößt. Ich denke, du hast die Methode removeAllItemsFromField nicht richtig implementiert.

midstar
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 172
Registriert: 29. Dez 2013 17:00

Re: Riesenproblem mit Test

Beitrag von midstar »

Omg. Ich hoere mal lieber auf zu flamen und halte die Klappe. *shame*

Danke drueckt nichtmal ansatzweise aus was ich gerade empfinde :D

TobiTobske
Mausschubser
Mausschubser
Beiträge: 58
Registriert: 15. Jan 2014 20:50

Re: Riesenproblem mit Test

Beitrag von TobiTobske »

midstar hat geschrieben: Danke drueckt nichtmal ansatzweise aus was ich gerade empfinde :D
Geht mir nun auch so! Danke, Chuechco, jetzt funktioniert auch endlich mein LandslideTest :D
Was ein bescheuerter Fehler :oops:

gast
Gast

Re: Riesenproblem mit Test

Beitrag von gast »

Hallo ich habe beim Testen dauernd die folgende Ausgabe:

java.lang.AssertionError
The state after executing: 68 in state: main.Model@476f598a should be: main.Model@17c5a49b

Und dann folgen immer unterschiedliche Fehler.

Was bedeutet das? Heißt das, das die Kopie nicht mit meinem Model übvereinstimmt?
Kann das der Grund für meine Fehler sein?
Wenn ja, wie kann ich ihn beheben?

midstar
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 172
Registriert: 29. Dez 2013 17:00

Re: Riesenproblem mit Test

Beitrag von midstar »

genau das heißt es glaube ich, musst mal schauen was der sonst als fehler noch ausgibt?^^

Benutzeravatar
SophiaLi1
Kernelcompilierer
Kernelcompilierer
Beiträge: 542
Registriert: 5. Jan 2014 11:48

Re: Riesenproblem mit Test

Beitrag von SophiaLi1 »

Das vergleicht dein gesamtes Model (Geld, Inventar, Gesundheit...) mit einem vordefinierten Model (wie es sein soll) und gibt dir dann an, wo etwas unerwartetes auftritt.

gast
Gast

Re: Riesenproblem mit Test

Beitrag von gast »

hallo,

danach als Fehler kommt:
the amount of gold on (...) is incorrect! expected: <false> but was <true>

...oder das gleiche mit silver und unterschiedlichen Positionen.

im Test wird an der Stelle die Methode containsItemOnField() abgefragt.
diese Methode liefert nur true, wenn es da ein item gibt, oder false wenn nicht. die gibt aber nicht den Anzahl von Mineralen.
was da falsch sein konnte, verstehe ich nicht. :(

midstar
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 172
Registriert: 29. Dez 2013 17:00

Re: Riesenproblem mit Test

Beitrag von midstar »

Guck mal durch ob ALLE model methoden implementiert sind.

Fehlt eine RemoveItem Methode? Oder sowas? Nehm mal die Stelle an der du items platzierst raus, und teste nochmal, ist der fehler weg?

Gast
Gast

Re: Riesenproblem mit Test

Beitrag von Gast »

Da ich des nun im pool oft gesehen habe...
vergleicht du mit == oder mir .equals( ) ?

gast
Gast

Re: Riesenproblem mit Test

Beitrag von gast »

ich hab alle model methode.

vergleiche mit ==, wenn ich mit equals vergleiche, bekomme ich sofort beim Ausführen des Programms einen Fehler:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at main.Underground.containsItemOnField(Underground.java:60)

Antworten

Zurück zu „Archiv“