En ce moment je développe un UnitTest pour un CustomControl. Dans ce contrôle, il y a du code, qui n'est excuté que lorsque la méthode appelée n'est pas appelée dans DesignTime. Lorsque j'exécute le test, le code donné n'est pas exécuté, car le contexte actuel semble être le DesignTime.Saut de DesignTime lors du test de débogage
Exemple:
public void SomeMethod() // EDIT: this is the OnLoaded Event for example.
{
if(IsNotInDesignMode()) // This is implemented somewhere else.
{
// I want this to be called in the Test Execution.
DoSomething();
}
}
EDIT: On dirait que ma première tentative était pas assez claire, alors voici une autre description.
Existe-t-il un moyen d'indiquer à ma méthode/classe de test d'exécuter le test en tant que version d'exécution? Je ne veux pas changer les propriétés ou les méthodes dans mon CustomControl. Et je n'ai pas acccess à la méthode IsNotInDesignMode() (en se moquant d'elle par exemple), car elle est implémentée dans une bibliothèque externe.
EDIT 2: Voir Code.
Merci de m'avoir aidé.
Vous ne pouvez pas "sauter hors du temps de conception". Votre contrôle utilisateur est affiché dans un concepteur ou affiché lors de l'exécution. Expliquez ce que vous essayez de faire exactement et expliquez ce que vous entendez par «sauter hors du temps de conception». Plus de contexte est nécessaire pour répondre à cela. Si vous voulez dire que vous voulez que la propriété 'IsNotInDesignMode' obtienne une certaine valeur pendant que l'unité teste le contrôle, alors créez un paramètre constructeur qui définit cette propriété, ou attribuez-le directement à partir de votre test unitaire. – CodeCaster
Je comprends que vous pourriez ne pas comprendre mon problème. Mais pourquoi l'avez-vous marqué comme doublon? Vous empêchez les autres utilisateurs d'ouvrir ma question et d'essayer de donner une réponse. Le lien que vous avez fourni est une question complètement différente. – Febertson
La description du problème que vous donnez est répondue par le doublon: vous ne pouvez que _détecter_, pas modifier le temps de conception - c'est une propriété en lecture seule. Donc, si vous voulez que votre vrai problème soit résolu, lisez [ask] et [edit] votre question afin qu'elle puisse être réellement répondue, et je serai heureux de rouvrir. – CodeCaster