Руководство по проектированию подкачки на бизнес-уровне
Приложение 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, поскольку вы можете легко смоделировать его и протестировать разные размеры. Это вызовет любые случаи, когда кто-то может попытаться жестко закодировать значение размера страницы в вашем менеджере.