С Intellitest вы можете указать тип Intellitest для использования, который соответствует интерфейсу при генерации модульных тестов, однако у меня есть специальная фабрика, которую я хочу использовать вместо этого.Как указать фабрику Intellitest, которая должна использоваться для интерфейса?
Мой заказ завод:
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);
}
}
Я хотел бы использовать эту фабрику для всех ILogic
экземпляров PEX пытается создать.
Я попытался добавить следующий атрибут PexAssemblyInfo.cs, и я также пытался добавить его выше моего теста:
[assembly: PexCreatableByClassFactory(typeof(ILogic), typeof(LogicFactory))]
, но я все еще получаю это предупреждение во время выполнения, когда инструментирование код:
will use Company.Logics.SpecificLogic as ILogic
И поэтому кажется, что он игнорирует мою фабрику каждый раз. Как заставить Intellitest использовать мою фабрику вместо этого?
Итак, вы говорите, что невозможно использовать PEX для использования фабрики для интерфейса без указания конкретного типа? –
Я не знаю об этой возможности. Тем не менее, я должен признать, что я довольно свежий с PEX. –