MOQ - как смоделировать интерфейс, который нужно привести к другому интерфейсу?

то, что я хочу сделать, это построить moq для I1 - это нормально ... однако в ходе метода, который я тестирую, который использует этот макет, мне нужно привести его к I2, чтобы получить доступ к некоторым свойствам, которые не включены I1

Interface I1 
{ int AProperty{get;set;}}

Interface I2
{int AnotherProperty{get;set;}}

Тогда у меня есть несколько предметов

Class O1 : I1 {}

а также

Class O2 : O1 , I2 {}

проблема в том, что когда у меня есть экземпляр реализующего I2 объекта, я могу привести его к I1, чтобы получить доступ к методам, которые реализуются через этот интерфейс. В коде это не проблема, и все работает правильно, как ожидалось.

Единственная проблема возникает при написании модульного теста для этого класса.

Интерфейсы также предоставляют метод GetNewInstance, который возвращает инициализированный экземпляр реализующего объекта, приведенного к интерфейсу IGetNewInstance ... Обычно я могу сделать это нормально и заставить его вернуться сам (и поэтому я продолжаю работать с объектом mock).

однако, когда вы пытаетесь преобразовать этот возвращенный объект типа I2 в I1, получается нулевая ссылка - это имеет смысл, поскольку фиктивный объект, который реализует I2, не наследует ничего от того, что наследует I1.

Вопрос в том, как заставить принудительный объект наследовать от обоих I1 и I2 одновременно?

Ответы на вопрос(1)

Ваш ответ на вопрос