Comment puis-je l'unité de test de la saisie de l'utilisateur en java

J'essaie de comprendre comment tester l'entrée d'un utilisateur (veuillez noter que je ne suis pas d'essayer de faire une simulation de test, mais un test réel de l'entrée de l'utilisateur)

Actuellement, comme vous pouvez le voir dans mon programme que j'ai codé en dur les valeurs pour mon cas de test et c'est en passant tous les tests, mais comment puis-je obtenir de l'entrée d'un utilisateur et de le tester .

Est-il un moyen où je peux appeler Système.dans mon constructeur et le passer quand je crée une instance de MyClass1 dans la classe de test?

S'il vous plaît, si possible me donner un exemple de code afin que je puisse mieux comprendre.

Si j'ai une interface en tant que tel

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

et puis l'implémentation de l'interface en tant que tel

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;
}
}

et enfin une classe de test en tant que tel:

public class ClasTest extends TestCase {

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

}
}

Merci, j'apprécie toute l'aide.

  • MVC, MVP ? Tout les modèles de conception?
  • Je suis en utilisant MVC.
  • Ce que vous faites dans votre test est suffisante à partir d'un test de point de vue. La seule chose possible serait de générer de façon aléatoire d'entrée et de test basée sur les graphes aléatoires.
  • Pourquoi ne pas utiliser des valeurs codées en dur pour vos tests? Vous avez juste besoin de penser à des cas spéciaux (limites comme Entier.MAX_VALUE, 0, etc), le mélange des ins certains nombres positifs et négatifs et peut-être que ce sera suffisant. Cette base de cas devrait couvrir tous les autres cas.
  • Oui, mais comment puis-je le tester?
  • Test quoi exactement? Vous n'avez pas montré aucun code en cours de test qui implique la saisie de l'utilisateur. Avoir un test de l'unité elle-même la lecture à partir de la console en quelque sorte (le Système.dans, Scanner, ...) n'est pas la façon dont les tests unitaires fonctionne -- les tests unitaires sont censés être automatisé et ne pas compter sur l'interaction humaine.
  • Le vote pour la fermer, non pas une vraie question. Entre les commentaires sur ce sujet et toutes les réponses, c'est clair on n'a aucune idée de quoi vous parlez.
  • Des tests unitaires pour les setters et getters qui fonctionnent sur une seule valeur, sans règles métier sont à peine utile

InformationsquelleAutor user1462617 | 2013-04-17