Comment puis-je JUnit tester ma classe de ligne de commande de méthode principale simple qui lit à partir de system.in en utilisant Scanner et imprime à system.out.Comment tester une application de ligne de commande simple en Java en utilisant JUnit
import java.util.Scanner;
public class SimpleMainCmdApplication {
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
System.out.println(scanner.next());
}
}
C'est tout à fait un cas d'utilisation spécifique où je fais une structure de données de cours et des algorithmes cours qui demande aux participants de télécharger un fichier * .java avec la principale méthode qui lit à partir System.in (à l'aide du scanner) et renvoie les réponses à System.out. Lorsque vous téléchargez votre code, le site Web crée et exécute l'application, teste et mesure les performances de votre algorithme. Je voulais un moyen de simuler ceci afin que je puisse écrire des tests d'intégration simples en utilisant JUnit dans le cadre d'une approche TDD pour chaque affectation. Il y avait quelques pointeurs utiles sur d'autres threads de débordement de pile qui ont aidé, mais rien qui a rencontré toutes les conditions.