2017-07-03 6 views
-3

Ich habe ein Programm in Java, ist es aller Arrays minor:Finden kleinere Array Junit

public int minorArray(int a[]) { 
    int largo = a.length; 
    int menor = 10000; 

    for (int i = 0; i < large; i++) { 
     if (a[i] < minor) 
     { 
      minor = a[i];     
     } 
    } 

    return minor; 
} 

Ich habe einen Testfall mit JUnit zu machen, um sicherzustellen, dass ich, dass eine leichte gefunden. Welche Methode würdest du empfehlen?

+0

"Minor aller Arrays"? Das ist völlig verwirrend. Sie programmieren das Minimum in einem Array von Integer-Werten. Und wonach fragst du jetzt? Welche JUNT-Methode verwendest du? Oder wie man einen Testfall entwirft (was hier eher trivial ist und Blinddaten und den Zielwert liefert)? – AKSW

+0

Sorry, mein Englisch ist nicht sehr gut. Ich muss wissen, welche Methode ich in JUnit verwenden soll. – Mario

+1

Warum wird 'minor' nicht mit' Integer.MAX_VALUE' initialisiert? Andernfalls wird die Methode fehlschlagen, wenn Sie ein Array mit allen Werten> 10000 haben. –

Antwort

0

Sie fragen nach einem Komponententest, und das ist ziemlich einfach.

Mit Blick auf Ihren Code scheint es, dass diese Methode den Mindestwert des angegebenen Arrays zurückgeben soll. Sie schreiben also Tests für diesen öffentlichen Vertrag.

Like:

Whatever underTest = new Whatever(); // the class with that method 

@Test 
public void testWith3SortedValues() { 
    assertThat(underTest.minorArray(new int[] { 0, 1, 2 }), is(0)); 
} 

Wo:

  • assertThat ist eine der JUnit asssert Methoden
  • ist() ist ein hamcrest Matcher

Mit anderen Worten: wenn Sie kennen den Input, der in diese Methode einfließt, Sie wissen genau, was zurückkommen soll. Sie fangen an, über mögliche Eingaben nachzudenken (die unterschiedliche "Eigenschaften" haben) - und einfach nach den erwarteten Ergebnissen zu suchen.