Question

Je suis nouveau sur PEX et MALES. J'essaie d'exécuter PEX sur mon code mais j'utilise l'injection de constructeur. Existe-t-il un moyen d'installer PEX sur la façon d'injecter les constructeurs?

Éditer

    public UserLogic(IUserRepository userRepository)
    {
        _userRepository = userRepository;
    }

    public int GetUsersAge(int id)
    {
        User user = _userRepository.GetById(id);
        DateTime DOB = user.DOB;
        DateTime now = DateTime.Today;
        int age = now.Year - DOB.Year;
        if (DOB > now.AddYears(-age)) age--;
        return age;
    }

J'ai besoin d'injecter un userRepostory User Stub. PEX échoue avec une NullReferenceException lorsque _UserRepository.getById (ID) est appelé. J'utilise le MOQ pour mes tests unitaires mais je veux passer à PEX et MALES

Dois-je utiliser des pexfactories pour créer mes talons?

Était-ce utile?

La solution

Essayez de passer un type de talon de taupes à un test paramétré généré par PEX. Pour créer un test paramétré, cliquez avec le bouton droit sur la classe que vous souhaitez explorer, puis sélectionnez PEX> Créer un test unitaire paramétré. Cela génère une méthode dans la classe de test qui contient des arguments. Les tests individuels appellent ce test paramétré, envoyant les arguments de test individuels.

Lorsque le code sous test utilise l'injection de dépendance par le biais d'arguments (il a un argument typé d'interface), la méthode de test paramètre générée par PEX contiendra également le même argument de type d'interface. Vous pouvez rédiger vos propres méthodes de test qui appellent également la méthode paramétrée, en lui alimentant vos propres valeurs, y compris le type d'interface. Assurez-vous simplement de ne pas les écrire dans le fichier généré par PEX!

Je vous suggère également de regarder l'utilisation de types de talons molaires, pour vos injections de test unitaires. La Manuel de référence Microsoft Mots est un très bon endroit pour commencer à apprendre comment utiliser les taupes dans les tests unitaires. Un type de talon de taupes sera créé pour votre interface, lorsque vous créez le test paramétré. Configurez simplement les détours pour votre type de stub, puis passez-le au test paramétré.

La création de détours de type talon est très facile. Je suggère de créer une méthode de configuration dans le projet de test, qui configure des détours fréquemment utilisés. J'ajoute généralement un drapeau d'énumération comme argument à cette méthode, donc je peux facilement lui dire quels détours à créer sur certains types, le tout en un seul appel.

Exemple d'énumération:

[Flags()]
public enum MoleConfigurations
{
    MoleSqlClientObjects,
    DisableDirectory_Exists,
    DisableEventLogExtensions,
    DisableInitializeDatabaseObjects,
    DisableInitializeThreadingObjects,
    DisableQueueExistingDataFiles,
    DisableConstructor
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top