2017-11-20 6 views
1

Wir lernen gerade JUnit-Tests in unserer Programmierklasse. Unsere Aufgabe war es, ein Verfahren zu schreiben, die die Summe der int-Werte in einem Array berechnet:Einfacher JUnit-Test funktioniert nicht

public class PIArrays 
{ 
    public int sum(final int[] array) { 
     int sum = 0; 
     for(int i = 0; i < array.length; i++){ 
      sum += array[i]; 
     } 
     return sum; 
    } 

} 

Dann sollen wir schreiben einen Test mit Hilfe von BlueJ-Tool.

public void testSum() 
{ 
    PIArrays pIArrays1 = new PIArrays(); 
    assertEquals(3, pIArrays1.sum({1,2})); 
} 

Die Summe Methode funktioniert gut, die Testergebnisse in dieser Fehlermeldung jedoch:

"illegal start of expression" 

Was genau mache ich falsch?

EDIT:

public class PIArraysTest ist falsch, es ist eigentlich public class PIArrays. Ich habe die falsche Zeile kopiert.

Der Fehler tritt in meiner Test-Klasse: public class PIArraysTest in dieser Zeile:

assertEquals(3, pIArrays1.sum({1,2})); 

mit diesem Teil:

({1,2}) 

hervorgehoben beeing
+0

Sie haben Ihre Klasse 'PIArraysTest' benannt und Sie bezeichnen sie als' PIArrays'? Das klingt nicht richtig. Verwenden Sie 'PIArraysTest pIArrays1 = new PIArraysTest();' in Ihrem Testcode. Bitte erläutern Sie den Fehler genauer. Welche Linie welche Klasse? Dies kann nicht das einzige Informationsrecht sein? – Clemenz

+1

'pIArrays1.sum ({1,2})' -> 'pIArrays1.sum (neue int [] {1,2})' – UnholySheep

+0

Danke für die Bearbeitung Ihrer Frage. Dies macht es viel klarer, was genau Sie fragen. Denken Sie daran, während Sie beim nächsten Mal andere Fragen zu SO stellen! – Clemenz

Antwort

2

{1, 2} als int[] nicht ist ein gültiger Parameter Verwenden Sie stattdessen new int[]{1, 2}.

assertEquals(3, pIArrays1.sum(new int[]{1,2})); 
+0

Das hat funktioniert! Nur eine Frage. Ich machte das in BlueJ mit der rechten Maustaste * Testklasse erstellen * und * Testmethode erstellen * und so weiter. Ist es normal, dass BlueJ manchmal so etwas versaut? – Yoey

+0

Sie meinen die Benennung der Klassen? Ja, es ist durchaus möglich, dass BlueJ das Suffix "Test" an Ihre Testklasse oder ähnliches anfügt. Ich habe noch nie zuvor mit BlueJ gearbeitet. Froh dir zu helfen" –

Verwandte Themen