Können Sie JUnit-Tests für eine CLI-Anwendung ausführen?

Jeremy Busuttil:

Ich bin relativ neu in Unit-Tests in Java und habe eine Anwendung vollständig mit CLI erstellt. Beispiel: Nach dem Starten der Anwendung erhält der Benutzer eine Reihe solcher Optionen.

  1. Registrieren
  2. Anmeldung . . . Usw. usw.

Wenn er sich anmeldet, wird er zu einer Register () -Methode übertragen, die innerhalb der Methode selbst nach Details wie Vor- und Nachnamen fragt. Ich möchte wissen, ob es eine Möglichkeit gibt, Benutzereingaben beim Erstellen der Komponententests zu simulieren, oder ob ich die Methoden überschreiben muss, damit ich Werte durch die Argumente übergeben und auf diese Weise Komponententests durchführen kann.

Reichtum:

Idealerweise sollte Ihr Code so geschrieben sein, dass er leicht zu testen ist und die Eingabemethode keine Rolle spielt. Dies bedeutet, dass die Eingabe von der Geschäftslogik getrennt werden sollte, damit Sie beim Schreiben der Tests den Eingabeteil vollständig ignorieren können.

Zum Beispiel, anstatt eine globale Scannerund so etwas wie die folgende zu haben, was die Methode von der Eingabemethode abhängig macht

public void login() {
    String username = scanner.nextLine();
    // check that the username is valid
}

Eine testbarere Methode ohne Abhängigkeiten von der Eingabemethode wäre

public void login(String username) {
    // check that the username is valid
}

Stellen Sie außerdem sicher, dass Sie verstehen, was einen korrekten Komponententest ausmacht. Bei dieser Methode besteht der offensichtliche Test darin, dass Sie sich mit gültigen Anmeldeinformationen anmelden können und dass Sie sich nicht mit ungültigen Anmeldeinformationen anmelden können.

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

So führen Sie eine Anwendung aus, bevor Sie Tests ausführen (gradle/kotlin/springboot)

Können Sie eine 32-Bit-Cygwin-Anwendung in einer 64-Bit-Installation ausführen?

Können Sie eine .NET Core 2.2-Anwendung neben .NET 3.1 ausführen?

In TFS Können Sie eine Aufgabengruppe verwenden, wenn Sie automatisierte Tests ausführen?

Können Sie eine Aktion für eine bestimmte Zeit im Pygame ausführen?

Was ist der Zweck von Karate-Junit5, wenn Sie Tests ohne Karate-Junit5 ausführen können?

Wie können Sie eine Regel für einen anderen Store ausführen?

So führen Sie JUnit-Tests für eine einzelne Testklasse in Gradle parallel aus

Unit-Tests in Xcode 11 können nicht ausgeführt werden: Das Ausführungsziel * ist für Tests, die Sie ausführen möchten, nicht gültig

Können Sie eine F # -Skriptdatei (.fsx) mit .net core ausführen?

Gibt es eine Begrenzung für die Tiefe verschachtelter Routen, die Sie in Nuxt.js ausführen können?

Können Sie eine Python-Datei heimlich ausführen?

Können Sie eine Funktion in einem Eingabewert in React ausführen?

Wie können wir Offline-Tests mit Cypress in einer PWA-Anwendung ausführen?

So führen Sie eine Aufgabe aus, bevor Sie Tests ausführen

Führen Sie JUnit-Komponententests in der Spring Boot-Anwendung aus, ohne eine Datenquelle anzugeben

Führen Sie sowohl Gurken- als auch JUnit-Tests von Maven Cli aus

NodeJS: So führen Sie NightmareJS e2e-Tests zum Ausführen einer Docker-Anwendung durch

Können Sie einen externen CLI-Befehl innerhalb einer CLI ausführen, die Sie entwickeln?

Können wir eine JavaFX-Sesktop-Anwendung im Web ausführen?

Können Sie ein Applescript-Skript aus einer Swift-Anwendung ausführen?

Erstellen Sie mehrere IP für eine Schnittstelle und können Sie einen Dienst auf jeder IP auf einem bestimmten Port ausführen

So definieren Sie eine Funktion für ein Objekt und können sie trotzdem ausführen, um die anfänglichen Objekteigenschaften festzulegen

So führen Sie eine VB6-App von einer geplanten Aufgabe aus, ohne dass Benutzer sie ausführen können

Können Sie gleichzeitig Benutzereingaben erhalten und gleichzeitig eine Funktion in C ++ für ein Windows-Programm ausführen, ohne GetAsyncKeyState oder Threading zu verwenden?

Soll ich für jede Aktion, die Sie auf einer Seite mit dem Seitenobjektmodell im Testframework ausführen können, eine Methode hinzufügen?

Können Sie eine ausführbare Java-Datei auf einer Webseite ausführen?

Wie können wir Vorverarbeitungsschritte für eine Variable in glänzendem Zustand ausführen?

Sie können keine Aktualisierung des Reaktionsstatus für eine nicht gemountete Komponente durchführen?