WCF/C# N 层应用程序。
我们已经使用这个片段作为基本指南在我们的业务层中实现了分页。
我只是想知道-为了使分页功能可测试,我应该使分页器成为我们 Manager 类的公共属性还是将其注入构造函数中?我们已经为单元测试注入了一个存储库,但我认为沿着注入过多的路线走下去是不对的。
或者,最好将寻呼机保密?无论如何,页面大小将在配置文件中指定,所以我想我可以在测试 app.config 中指定页面大小。
WCF/C# N 层应用程序。
我们已经使用这个片段作为基本指南在我们的业务层中实现了分页。
我只是想知道-为了使分页功能可测试,我应该使分页器成为我们 Manager 类的公共属性还是将其注入构造函数中?我们已经为单元测试注入了一个存储库,但我认为沿着注入过多的路线走下去是不对的。
或者,最好将寻呼机保密?无论如何,页面大小将在配置文件中指定,所以我想我可以在测试 app.config 中指定页面大小。
我会将您的寻呼机注入如下:
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 的不同设置,因为您可以轻松地模拟它并测试不同的大小。这将调出任何可能有人尝试在您的管理器中硬编码页面大小值的情况。