Как Дэвид рекомментирует (см. Комментарии к вопросу), я публикую то, что на самом деле решило мою проблему здесь.
Проблема заключалась в проверке того, что код для вызова служб WCF был фактически запущен, отправка правильного материала и т. Д. Я бы ОЧЕНЬ СИЛЬНО рекомендовал, чтобы кто-то, спустившийся по этому маршруту, делал это в стиле TDD в качестве переоснащения модульных тестов над чужой работой код не является приятным опытом.
В этом случае прокси не были автогенерированы, но унаследованы от одного класса ProxyBase, который раскрыл метод Invoke (Действие), упомянутый выше.
public void Invoke(Action<T> action)
{
Task.Run(async()=> { await _invoker.Invoke(this, action); }).Wait();
}
Моя первая мысль была издеваться действие (и я в конечном итоге делает это), но это порождало Сервис не найден ошибки, совершенно правильно.
В конце концов, я в конечном итоге с NSubstitute Automock из (определенного) класса Proxy заклинателя, созданный фактически проходящими зависимостей в конструктор, как так -
var myProxyMock = Substitute.For<MyProxy>(dependency1, dependency2);
и изменение метода базового Invoke к виртуальной, так что заменитель может заменить его, например, так -
public virtual void Invoke(Action<T> action)
{
Task.Run(async()=> { await _invoker.Invoke(this, action); }).Wait();
}
Теперь, подставляя действия, я мог проверить окружающий код эффективен.
var actionSubstitute = Substitute.For<Action<MyService>>();
и применять соответствующие возвращаемые значения, указать.
так eventuially, у нас -
myProxyMock.When(x => x.Invoke(Arg.Any<Action<MyService>>).Do(x => _counter++);
Проблема решена. Большое спасибо, Дэвид.
Вы можете 'Заменить. Для>()' если это помогает? С точки зрения насмешек 'Invoke', убедитесь, что вы заменили интерфейс прокси, или сделайте' Invoke' виртуальным, чтобы NSubstitute мог перехватить вызовы на него. –
Substitute.For>() создает синтаксическую ошибку - ah, no T allowed, can '; t generic. Попался. –
Маркировка Вызывать как виртуальную, полностью решить проблему. Дэвид, пожалуйста, отправьте свой комментарий в качестве ответа, чтобы я мог отметить его как правильно? –