F-ES Sitecore
Вы бы традиционно использовали интерфейсы для реализации фиктивной службы, с которой взаимодействует ваш код, который позже может быть заменен рабочим.
public interface IMyService
{
void SomeMethod(int id);
bool SomeOtherMethod(string value);
}
Для тестирования вы просто издеваетесь над сервисом
/// <summary>
/// This is a mocked version of the service
/// </summary>
public class MockedMyService : IMyService
{
public void SomeMethod(int id)
{
}
public bool SomeOtherMethod(string value)
{
return true;
}
}
когда фактический api будет доступен вы напишете правильную версию которая его использует
/// <summary>
/// This version of the service will communicate with the finished API
/// </summary>
public class MyService : IMyService
{
public void SomeMethod(int id)
{
// implement code
}
public bool SomeOtherMethod(string value)
{
// implement code
}
}
Затем клиентский код работает на уровне интерфейса, и вы используете инъекцию зависимостей, чтобы решить, используется ли издевательская версия или реальная версия.
public class MyClient
{
private IMyService myService;
// use dependency injection to configure which concrete class is passed to the constructor
public MyClient(IMyService myService)
{
this.myService = myService;
}
public bool DoSomething()
{
myService.SomeMethod(123);
return myService.SomeOtherMethod("hello world");
}
}
Amr Mohammad Rashad
Спасибо в первую очередь за ваше время и внимание. Я нашел простое решение, так как могу использовать либо Postman, либо SoapUI для создания насмешливого сервиса :). Это легко, и на данный момент это соответствует моим потребностям :). Еще раз спасибо за ваше время и внимание.