我有一个基础控制器,可以轻松地将数据传递到主页面视图。但是这个基础控制器会接收一个服务层,每次运行单元测试时,由于该服务层尝试访问一些数据库内容,因此会导致崩溃。
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);
我使用 moq 等工具来模拟服务层接口中的存储库,但似乎没有任何效果。
所以不知道该怎么办。