【发布时间】:2009-10-05 02:25:45
【问题描述】:
我制作了一个基本控制器,因此我可以轻松地将数据传递到母版页视图。然而,这个基本控制器将一个服务层传递给它,并且每次我运行我的单元测试时,这个服务层都会杀死它,因为它试图访问一些数据库内容。
private ServiceLayer service;
public ApplicationController():this(new ServiceLayer())
{
}
public PlannerApplicationController(IServiceLayer serviceS)
{
service= serviceS;
}
protected override void Initialize(RequestContext requestContext)
{
base.Initialize(requestContext);
// some stuff gets called here.
}
服务层调用的第一件事
public ServiceLayer ()
: this(new Repository())
{
}
// 有另一个用于 DI 的构造函数。
所以当我运行我的测试并且它到达我的控制器时,一旦它遇到我的控制器构造函数,它就会继承这个基本控制器,它似乎调用这个基本控制器。
所以在我的单元测试中,我尝试通过执行类似的操作来模拟基本控制器
baseController = new ApplicationController(SerivceLayerInterface);
我在 serviceLayer 界面中使用 moq 和其他东西来模拟存储库,但它似乎没有效果。
所以不知道该怎么办。
【问题讨论】:
标签: c# .net asp.net asp.net-mvc unit-testing