Aide avec la syntaxe taupes pour tester la méthode privée avec les génériques

StackOverflow https://stackoverflow.com/questions/7340507

  •  27-10-2019
  •  | 
  •  

Question

J'ai une signature d'une méthode qui ressemble à ceci: privé IEnumerable BuildCustomerUpdatePlan (Liste localCacheChangedCustomers, Liste crmChangedCustomers) {}

Quand je regarde l'objet moled, la syntaxe (IntelliSense) de la façon d'appeler la méthode et le test SITI absolument déroutant pour moi et chaque fois que je donne un coup de feu, je reçois des erreurs de compilation. Je l'ai regardé à travers les didacticiels de base fournis sur le site MSFT, mais je ne tout simplement pas comment tester une méthode privée en utilisant grains de beauté ou la façon de traiter le type de retour et de multiples paramètres.

Unfortuantely Je suis incapable de trouver d'autres bonnes HOWTOs ou fils présenter un échantillon plus complexe qu'un simple travail avec une méthode simple Add () qui crache sur un INT et INT accepte. : (

Conseils?

Était-ce utile?

La solution

Dans votre projet de test, assurez-vous que vous ajoutez un correspondant assemblage taupes à l'ensemble sous test. Vous aurez également besoin d'ajouter une instruction using de l'assemblage sous test avec .Moles en annexe de sorte que vous pouvez utiliser l'ensemble moled.

Moles change les noms des classes et des méthodes pour la forme M[Original Class Name].[Original Method Name][typeof param1][typeof param2].... Dans votre cas, un détour pour cette méthode pourrait ressembler MClass.BuildCustomerUpdatePlanListList = (List x, List y) => { [code]};. Cela définit une méthode anonyme qui prend deux Lists en tant que paramètres et vous mettiez tout le code voulu dans la fonction. Assurez-vous que vous retournez un IEnumerable dans cette méthode anonyme.

Voici un exemple en utilisant taupes pour détour Directory.GetFiles:

using System.IO.Moles;
[assembly: MoledType(typeof(System.IO.Directory))]
...
    MDirectory.GetFilesStringString = (string x, string y) => new string[0];

Depuis la classe Directory est membre de System.IO-je utiliser using System.IO.Moles; préciser que je veux utiliser les membres moled de l'assemblée.

Les taupes vous devez spécifier les types Moled:. [assembly: MoledType(typeof(System.IO.Directory))] fait le travail

Enfin, Directory.GetFiles prend deux chaînes en tant que paramètres et retourne un tableau de chaînes. Pour détour la méthode en retour l'équivalent d'aucun fichier trouvé, la méthode moled retourne juste new string[0]. Les accolades sont nécessaires si vous voulez plusieurs lignes dans la méthode anonyme et, sinon detouring une méthode void, une instruction de retour qui correspond au type de la méthode originale retournerait.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top