На что вы хотите обратить внимание, так это на функциональность Isolator «Swap».
// First set up your fake Xyz.
var fakeXyz = Isolate.Fake.Instance<Xyz>();
Isolate.WhenCalled(() => fakeXyz.SomeMethod()).WillReturn("Value");
// Now tell Isolator that the next time someone does
// "new Xyz()" you want it to be your fake.
Isolate.Swap.NextInstance<Xyz>().With(fakeXyz);
// Create your Abc and do your assertions. This should pass:
var realAbc = new Abc();
Assert.AreEqual("Value", realAbc.Context.SomeMethod();
Хорошим справочником для определения такого рода основных функций Isolator является электронная документация на сайте Typemock..Ознакомьтесь с разделами «Быстрый старт» и «Использование Typemock Isolator».Есть еще много примеров, чтобы показать вам, как делать аналогичные и более продвинутые вещи.
ОБНОВЛЕНИЕ: Ранее я показал Assert.AreSame(fakeXyz, realAbc.Context)
как способ проверки обмена.Похоже, что в некоторых версиях Typemock Assert.AreSame
потерпит неудачу, потому что работает какой-то механизм динамического прокси-сервера - они на самом деле не заменяются на буквально тем же экземпляром фейка, они 'Вы делаете некоторые хитрости, чтобы заставить вещи случиться.Однако вызовы на поддельном экземпляре все равно будут вызываться, и вы все равно получите ожидаемый результат.Я обновил образец фрагмента соответственно.