Wie kann ich die unit-test-user input in java

Ich versuche zu verstehen wie kann ich testen, die Eingabe des Benutzers (bitte beachten ich bin nicht versuchen zu tun, ein mock-test sondern ein test über aktuelle Eingabe des Benutzers)

Derzeit, wie Sie sehen können, in meinem Programm habe ich hart codiert die Werte für meine test-Fall und es ist das bestehen aller tests, aber wie bekomme ich die Eingabe des Benutzers und testen Sie es .

Ist es eine Möglichkeit, wo kann ich Ruf-System.in meinem Konstruktor und übergeben es, wenn ich erstellen Sie eine Instanz von MyClass1 in der test-Klasse?

Bitte, wenn möglich, geben Sie mir einige Beispiel-code, so kann ich besser verstehen.

Wenn ich ein interface als solches

public interface IMyClass{
   public int getvalue1();
   public int getvalue2();
   public int getvalue3();
}

und dann interface-Implementierung als solche

public class MyClass1 implements MyClass{

private int _value1 = 0;
private int _value2 = 0;
private int _value3 = 0;



public MyClass1(int number1, int number2, int number3)
{

   _value1 = number1;
    _value2 = number2;
    _value3 = number3;
}

public void setLength1(int value1)
{
    _value1 = value1;
}

public void setLength2(int length2)
{
    _value2 = value2;
}

public void setLength3(int length3)
{
    _value3 = value3;
}

public int getValue1()
{
    return _value1;
}

public int getValue2()
{
    return _value2;
}

public int getValue3()
{
    return _value3;
}
}

und schließlich eine test-Klasse als solche:

public class ClasTest extends TestCase {

public void testNumbers()
{
   MyClass1 numbers= new MyClass1(1,2,3);
   assertThat(numbers.getValue1(),is(not(numbers.getValue2())));

}
}

Danke, ich freue mich über jede Hilfe.

  • MVC, MVP ? Entwurfsmuster?
  • Ich bin mit MVC.
  • Was Sie tun in Ihrem test reicht aus einer Test-Sicht. Das einzige, was möglich wäre, um zufällig zu generieren Eingaben und testen Sie, basierend auf zufälligen Eingaben.
  • Warum nicht verwenden fest codierte Werte für Ihre tests? Sie brauchen nur zu denken, über die in besonderen Fällen (Grenzen, wie Integer.MAX_VALUE, 0 etc) auch mix-ins einige positive und negative zahlen, und vielleicht wird dies genug sein. Diese grundlegende Fälle abdecken sollte allen anderen Fällen.
  • Ja aber wie kann ich es testen?
  • Test was genau? Sie haben nicht gezeigt, beliebigen code unter test beinhaltet, dass die Benutzer-Eingabe. Mit einem unit test selbst zu Lesen von der Konsole in irgendeiner Weise (System.in, Scanner, ...) ist nicht, wie unit-testing funktioniert-unit-tests sollen automatisiert werden und Sie sich nicht auf die menschliche Interaktion.
  • Die Abstimmung zu schließen, und nicht eine echte Frage. Zwischen die Kommentare auf dieser und allen die Antworten es ist klar, niemand hat eine Ahnung, wovon Sie reden.
  • Unit-tests für die setter und Getter, die den Betrieb auf einen einzelnen Wert ohne business-Regeln sind kaum nützlich

InformationsquelleAutor user1462617 | 2013-04-17
Schreibe einen Kommentar