[Précision : Je travaille sous Visual Studio 2013]
Bonjour tout le monde,
Dans une de mes classes statiques, j'ai une méthode privée, générique et statique avec la signature suivante :
Je souhaite faire un test unitaire sur celle-ci. Pour cela j'utilise ce que j'ai toujours utilisé pour tester mes méthodes privées et statiques : la classe PrivateType et sa méthode InvokeStatic().
Code : Sélectionner tout - Visualiser dans une fenêtre à part private static void MaMehode<T>(List<T> p1, ObservableCollection<T> p2)
Voici donc un extrait du code de mon test unitaire :
Le problème, c'est qu'au débogage la méthode InvokeStatic() me génère une exception 'System.ArgumentException'. J'ai tenté autre chose avec la méthode InvokeStatic() (voir ci-dessous), mais rien n'y fait, j'ai toujours une exception.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 List<char> p1 = new List<char>() { 'd', 'a', 'c', 'b' }; ObservableCollection<char> p2 = new ObservableCollection<char>() { 'a', 'b', 'c', 'd' }; // [...] PrivateType pt = new PrivateType(typeof(MaClasse)); pt.InvokeStatic( "MaMethode", new Type[] { typeof(List<char>), typeof(ObservableCollection<char>) }, new object[] { p1, p2}, new Type[] { typeof(char) } ); // [...]
Est-ce que l'un d'entre vous aurait une solution, s'il vous plait ?
Je pense que le soucis vient de mes paramètres dans la méthode InvokeStatic(), et plus particulièrement à cause du type générique utilisé dans la méthode appelée.
Mon autre tentative :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 pt.InvokeStatic( "MaMethode", new Type[] { typeof(List<>), typeof(ObservableCollection<>) }, new object[] { p1, p2}, new Type[] { typeof(char) } );
Partager