Документация для создания Mock объекта - PullRequest
0 голосов
/ 27 марта 2012

Я хочу протестировать приложение wcf. Но я не получаю адекватную информацию для внедрения зависимости и создания фиктивного объекта. Кто-нибудь может предложить мне что-нибудь?

Ответы [ 2 ]

0 голосов
/ 28 марта 2012

Внедрение основных зависимостей не является сложной концепцией для понимания. Вам необходимо выполнить следующие действия:

  1. Создание абстрактного класса или, предпочтительно, интерфейса.
  2. Создайте класс, который реализует этот интерфейс.
  3. Внедрить интерфейс в класс конструктора, который зависит от него.

Например:

public interface IMyRepository
{
   void SaveData();
}

public class MyRepository : IMyRepository
{
   public void SaveData()
   {
      //...Do Something
   }
}

public class MyDomainService
{
   private readonly IMyRepository _repository;

   public MyDomainService(IMyRepository repository)
   {
      _repository = repository;
   }

   public void SaveNewEntityInDatabase()
   {
      //... Do Something

      _repository.SaveData();
   }
}

Сделав это, вы эффективно внедрили IMyRepositoryDependency в класс MyDomainService, так что теперь вы можете смоделировать или заглушить его, используя вашу любимую среду для моделирования или написав собственную.

В первой части вашего вопроса, касающегося WCF, я мог бы истолковать этот вопрос многими способами, поэтому вам нужно быть более конкретным, чтобы получить лучшую помощь.

Если вы действительно хотите протестировать сервисы WCF, я бы порекомендовал использовать их только как фасад для вашего приложения, поэтому вам не нужно будет на самом деле тестировать сервисы, но объекты домена вашего уровня бизнеса.

Например:

public class MyWCFService
{
   public void SaveNewEntityInDatabase()
   {
      var myDomainBusinessService = new MyDomainBusinessService();
      myDomainBusinessService.SaveNewEntityInDatabase();
   }
}

public class MyDomainBusinessService
{
    public void SaveNewEntityInDatabase()
    {
        //...Do Something
    }
}

Я могу дать вам гораздо больше информации, но, опять же, я не совсем уверен, что именно вам нужно. Я пропустил демонстрацию внедрения зависимостей в части WCF, чтобы попытаться упростить пример.

Надеюсь, это поможет.

0 голосов
/ 27 марта 2012

Я бы посоветовал взглянуть на nSubstitute .Это насмешливая основа, которую, на мой взгляд, понять гораздо проще, чем некоторые другие.И здесь является некоторой деталью внедрения зависимости.Надеюсь, это поможет вам начать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...