Bonjour à tous.
Je tente de mettre en place des tests unitaires, mais j'ai des problèmes de dépendance. J'essaye donc d'utiliser Microsoft.Fakes pour simuler une référence mais je n'y comprend pas grand chose
La Dll dont je dépend en production ne peut etre utilisée pendant des tests.
Appellons là evil.dll
Elle est écrite en C++ ne fonctionne que si un programme est lancée.
Si un test tente de l'appeller, j'aurai un FileNotFoundException : evil.dll ou une de ses dépendances ne peut etre trouvée.
Voici donc un exemple que je cherche à modifier pour injecter des fakes.
Je ne vois pas comment me passer du type 'Script' le but étant de tester la classe 'Exemple'
Evil.dll
Et mon code de prod
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public abstract class Script { public event EventHandler okEvent; }
MaDll.dll
Enfin mon test qui jete le FileNotFoundException à cause de evil.dll
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 public class Maclasse : Evil.Script //Cette classe pose probleme dans mes tests à cause de la dépendance vers evil.dll { } [assembly:InternalsVisibleTo("MesTest")] //Pour que mes tests puissent analyser _owner (voir ci dessous) //La classe que je veux tester public class Exemple { Maclasse _owner; //Ce type dépend de evil.dll donc probleme public Exemple(Script owner) { if(owner == null) throw new ArgumentNullException(); _owner = owner; } }
La où je bloque vraiment, c'est que le constructeur de Exemple attend un Script, et non un MockScript, alors je ne vois vraiment pas ce que je peux faire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 [TestClass] public class ExempleTest { [TestMethod] public void Exemple_Constructor_ownerNotNull { MaClasse maisquefaire = new MaClasse(); Exemple cible = new Exemple(maisquefaire); Assert.IsNotNull(cible._owner); } }
Une idée quelqu'un?
Partager