Mit Intellitest können Sie einen Typ angeben, den Intellitest verwenden soll, der für eine Schnittstelle beim Generieren von Komponententests passt. Ich habe jedoch eine benutzerdefinierte Factory, die ich stattdessen verwenden möchte.Wie lege ich die Fabrik fest, die Intellitest für eine Schnittstelle verwenden soll?
Meine individuelle Fabrik:
public static partial class LogicFactory
{
/// <summary>A factory for ILogic instances</summary>
[PexFactoryMethod(typeof(ILogic))]
public static ILogic Create(string defaultUICulture, bool saveSuccessful)
{
return Mock.Of<ILogic>(
x =>
x.GetUICulture(It.IsAny<string>()) == defaultUICulture &&
x.Save(It.IsAny<string>(), It.IsAny<string>()) == saveSuccessful);
}
}
Ich mag würde diese Fabrik verwenden für alle ILogic
Instanzen PEX zu schaffen versucht.
Ich habe versucht, das folgende Attribut zu PexAssemblyInfo.cs Hinzufügen und ich habe auch versucht, es über meinem Test ergänzt:
[assembly: PexCreatableByClassFactory(typeof(ILogic), typeof(LogicFactory))]
aber ich habe noch diese Laufzeit Warnung erhalten, wenn Code instrumentiert:
will use Company.Logics.SpecificLogic as ILogic
Und so scheint es, dass es meine Fabrik jedes Mal ignoriert. Wie kann ich Intellitest stattdessen zwingen, meine Fabrik zu benutzen?
Sie sind also sagen, dass es nicht möglich ist, PEX zu anweisen, eine Fabrik für eine Schnittstelle zu verwenden, ohne eine konkrete Art anzugeben? –
Ich bin mir dieser Möglichkeit nicht bewusst. Allerdings muss ich zugeben, dass ich mit PEX ziemlich frisch bin. –