WCF / C#N-Tier app。
我们已使用this snippet作为基本指南在我们的业务层中实施了分页。
我只是想知道 - 为了使分页功能可测试,我应该将寻呼机作为Manager类的公共属性还是将其注入构造函数中? 我们已经为单元测试注入了一个存储库,但是我认为不适合注入过多的注册路径。
或者,将寻呼机保密是否更好?页面大小无论如何都会在配置文件中指定,所以我想我可以在测试app.config中指定页面大小。
答案 0 :(得分: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的不同设置,因为您可以轻松地模拟它并测试不同的大小。如果有人试图在您的经理中对页面大小值进行硬编码,则会出现这种情况。