Zum Beispiel mit der folgenden Hauptmethode.Wie überprüfe ich die kommende Ausgabe von der Hauptmethode?
public class Solution {
public static void main(String []argv) {
System.out.println("Hello World.");
System.out.println("Hello Java.");
}
}
Ich möchte wissen, wie Code eine Plattform (Hackerrank zum Beispiel) überprüfen würde, dass die Hauptmethode die erwartete Ausgabe druckt.
Ist nicht einfach vorstellen, wie man es mit Junit macht, auf den ersten Blick. Ich glaube, dass ein externes Programm die Ausgabe prüft, meine ich so etwas wie diese:
$ java Solution | runtests
Danke
Ich habe mir auch überlegt, einen 'ProcessBuilder' zu verwenden, aber eigentlich zum Aufruf von Java-Code ist der beste Weg, ihn direkt aufzurufen, oder? – Dici
@Dici Ja, es direkt anzurufen ist wahrscheinlich der beste Weg, solange Sie sich nicht sorgen, dass der geschriebene Code den Code, der ihn ausführt, beeinträchtigt (Code, der durch einen separaten Prozess läuft, wird in seiner eigenen Umgebung sein). – SamTebbs33
Ja, Ihre Lösung würde eine neue JVM umfassen. Das könnte eine gute Sache für Isolationszwecke sein, aber ich frage mich, ob es nachhaltig für einen Server ist, der viele Lösungen zur Bewertung erhalten würde. Vielleicht ist es in Ordnung, vielleicht auch nicht, obwohl ich sehen kann, warum zwei Lösungen, die auf der gleichen JVM laufen, ziemlich schlecht sein können ... +1 – Dici