Руководство по проектированию подкачки на бизнес-уровне

Приложение WCF/C# N-Tier.

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

Мне просто интересно - чтобы сделать тестируемую функцию подкачки страниц, нужно ли сделать пейджер общедоступным свойством наших классов Manager или добавить его в конструктор? Мы уже внедрили репозиторий для модульного тестирования, но я не считаю правильным идти по пути введения слишком большого количества.

Или лучше держать пейджер закрытым? В любом случае размер страницы будет указан в файле конфигурации, так что, я думаю, я мог бы указать размер страницы в тестовом app.config.

1 ответ

Решение

Я бы вставил ваш пейджер как-то так:

  public interface IPager {
     int PageSize {get;}
  }

Ваш конкретный класс будет тогда чем-то простым:

  internal class ConfigPager : IPager {
     public int PageSize {
         get{

             int pageSize = 10;  // default value
             Int32.TryParse(ConfigurationManager.AppSettings["PageSize"], out pageSize);
             return pageSize;
         }
     }
  }

Внедрив IPager, вы сможете более полно протестировать свой класс менеджера, чтобы убедиться, что он действительно учитывает различные параметры PageSize, поскольку вы можете легко смоделировать его и протестировать разные размеры. Это вызовет любые случаи, когда кто-то может попытаться жестко закодировать значение размера страницы в вашем менеджере.

Другие вопросы по тегам