Я хочу проверить, что мой тип Func
действительно выполняется. Для этого я создал Mock
, но столкнулся с Exception
из Autofixture. Я пробовал Freeze
только Func
(без Mock
), и это работает. Может кто-нибудь объяснить, что происходит, или направить меня на правильный способ сделать это?
Сообщение об исключении:
Исключение типа «Ploeh.AutoFixture.Kernel.IllegalRequestException» возникло в Ploeh.AutoFixture.dll, но не было обработано в пользовательском коде. Дополнительная информация: Обнаружен запрос IntPtr. Это небезопасный ресурс, использование которого приведет к сбою процесса, поэтому запрос будет отклонен. Распространенным источником запросов IntPtr являются запросы делегатов, таких как Func или Action. В этом случае ожидаемый обходной путь — настроить (зарегистрировать или внедрить) проблемный тип, указав правильную стратегию создания.
Код:
public class DomainClassDummy
{
public int Id { get; set; }
}
var frozenFunc = F.Freeze<Func<int, DomainClassDummy>>(); //works
var frozenMockOfFunc = F.Freeze<Mock<Func<int,DomainClassDummy>>>(); //fails