Partager via


Exemple de test générique

Mise à jour : novembre 2007

L'exemple « EvenOdd » est un projet que vous pouvez générer en un programme simple. Vous pouvez ensuite encapsuler ce programme comme test générique. Les fichiers de cet exemple sont fournis pour la procédure pas à pas suivante : Procédure pas à pas : création et exécution d'un test générique.

Exemple de code

Le code de cet exemple est disponible ici.

using System;
using System.Globalization;
using System.IO;

namespace EvenOdd
{
    class TestSecondsOrNumbersOrFiles
    {
        /* Purpose: Wrap this sample app to create a generic test that passes or fails. Use it in 
           conjunction with the walkthrough topic that covers creating and running a generic test
           in the testing tools section of the Visual Studio Team System documentation. 

           When you run the EvenOdd app, it exhibits the following Pass/Fail behavior: 
           * Pass zero arguments: EvenOdd randomly returns 1 (Fail) or 0 (Pass).  
           * Pass one (integer) argument: EvenOdd returns 1 if the argument is odd, 0 if even. 
           * Pass two arguments: EvenOdd ignores the first argument and uses only the second one, a string.  
             If the file named by that string has been deployed, EvenOdd returns 0 (Pass); otherwise 1 (Fail). 
        */ 

        [STAThread]
        public static int Main(string[] args)
        {
            // If no argument was supplied, test whether the value of Second is even.
            if (args.Length == 0)
                return TestNumber(DateTime.Now.Second);

            // If only a single numeric (integer) argument was supplied, 
            // test whether the argument is even.
            if (args.Length == 1)
            {
                try
                {               
                    int num = Int32.Parse(args[0], CultureInfo.InvariantCulture);                     
                    return TestNumber(num);
                }
                // catch non-integer argument for args[0]
                catch (FormatException)
                {
                    Console.WriteLine("Please type an integer.");
                    return 1;
                }
                // catch too-large integer argument for args[0]
                catch (OverflowException)
                {                    
                    Console.WriteLine("Type an integer whose value is between {0} and {1}.", int.MinValue, int.MaxValue);
                    return 1;
                }

            }
            // If two arguments are supplied, the test passes if the second
            // argument is the name of a file that has been deployed. 
            if (args.Length == 2)
            {
                if (File.Exists(args[1]))
                    return 0;              
            }
            // Test fails for all other cases
            return 1;                        
        }

        public static int TestNumber(int arg)
        {
            return arg % 2;
        }
    }
}

Utilisation du code

Pour utiliser ce code, vous devez d'abord créer un projet pour lui dans Visual Studio. Suivez les étapes décrites à la section « Préparer la procédure pas à pas » dans Procédure pas à pas : création et exécution d'un test générique.

À propos du programme exemple EvenOdd

L'exemple EvenOdd est une application console Visual C#. Il retourne une valeur de 1 ou 0, selon l'argument que vous lui passez :

  • Si vous ne passez aucun argument et que le champ des secondes de l'heure système en cours est pair, le programme renvoie la valeur 0. Si vous ne passez aucun argument et que la valeur du champ des secondes est impaire, le programme renvoie la valeur 1.

  • Si vous passez un argument numérique unique et que le nombre que vous passez est pair, le programme renvoie la valeur 0. Si le nombre que vous passez est impair, le programme renvoie la valeur 1. Si vous passez un argument non numérique, le programme renvoie la valeur 1. Le test générique qui encapsule le programme renvoie alors le résultat Échec.

  • Si vous passez deux arguments, dont le second représente un fichier existant dans le même répertoire que le programme, ce dernier renvoie la valeur 0. Sinon, il renvoie la valeur 1.

  • Tous les autres cas conduiront à un échec.

Voir aussi

Tâches

Procédure pas à pas : création et exécution d'un test générique