Вы можете включить приложение B в качестве ссылки в приложение A, а затем использовать платформы Mocking для изменения поведения методов или свойств B при непосредственном вызове его API.Это тот же процесс, который используется для модульных тестов при настройке ожиданий на зависимости.Существуют ограничения, которые обычно работают только в том случае, если рассматриваемый объект является интерфейсом или содержит виртуальные (переопределяемые) методы / свойства.Решение также может зависеть от возможности внедрения зависимости в API Bs, что может или не может быть возможным в зависимости от сценария.
Moq, Rhino Mocks.и TypeMock все предоставляют эту функциональность.Вот быстрый пример Moq для переопределения поведения метода GetPath с альтернативным значением:
// create a mocked version of a class and setup an expectation
var appBClassMoq = new Mock<AppBClass>();
appBClassMoq.SetUp(o => o.GetPath()).Returns("C:\MyNewPath");
// get the mocked instance
var appBClass = appBClassMoq.Object;
// run some code, when it hits GetPath() it will return the mock value
appBClass.SomeMethodThatCallsGetPath();