J'ai une classe que je veux mocker et qui n'a qu'une interne attend quelques arguments. Je l'effet ajouté InternalsVisibleTo
-attribut à mon système testé et écrit le code suivant:classe mock avec constructeur interne
var target = Substitute.For<MyClass>(testArgs);
où MyClass
est la suivante:
public class MyClass
{
internal MyClass(int i) { ... }
}
Lorsque je reçois un débogage NotSupporetedException
parce que je ne pas avoir default-constructor. Cependant, comme j'en ai un interne (qui est visible à mon test-assembly à cause de InternalsVisibleTo
) je m'attendrais à ce que celui-ci soit utilisé à la place.
Bien sûr, je pourrais juste rendre le constructeur public mais cela permettrait à n'importe quel utilisateur de mon API de créer des instances de MyClass
que j'aimerais éviter. Y a-t-il quelque chose qui me manque pour que ça marche?