C# 在ASP.NET MVC 6中实现单元测试时的依赖项注入问题
我的单元测试代码是C# 在ASP.NET MVC 6中实现单元测试时的依赖项注入问题,c#,asp.net-mvc,testing,C#,Asp.net Mvc,Testing,我的单元测试代码是 [TestClass] public class ProjectControllerTest { Mock<IProjectService> addressRepositoryMock = new Mock<IProjectService>(); ProjectController controller; [TestInitialize] public void TestInit() { con
[TestClass]
public class ProjectControllerTest
{
Mock<IProjectService> addressRepositoryMock = new Mock<IProjectService>();
ProjectController controller;
[TestInitialize]
public void TestInit()
{
controller = new ProjectController(addressRepositoryMock.Object);
}
[TestMethod]
public void TestMethod1()
{
var response = controller.GetOverrides(1) as HttpResponseMessage;
}
}
[TestClass]
公共类项目控制器测试
{
Mock addressRepositoryMock=新建Mock();
项目控制器;
[测试初始化]
公共无效测试()
{
控制器=新项目控制器(addressRepositoryMock.Object);
}
[测试方法]
公共void TestMethod1()
{
var response=controller.GetOverrides(1)作为HttpResponseMessage;
}
}
我的控制器代码是:
[Route("GetOverrides")]
[HttpGet]
public HttpResponseMessage GetOverrides(int Project_Id)
{
List<OverridesDto> overrides = new List<OverridesDto>();
try
{
overrides = projectService.GetOverrides(Project_Id);
}
catch (Exception ex)
{
Log.Logger.Error(ex, "Exception:{Ex}", null);
ThrowHttpExceptionOnError(ex.ToString());
}
return Request.CreateResponse(HttpStatusCode.OK, overrides);
}
[路由(“获取覆盖”)]
[HttpGet]
公共HttpResponseMessageGetOverrides(int项目Id)
{
列表覆盖=新列表();
尝试
{
覆盖=projectService.GetOverrides(项目Id);
}
捕获(例外情况除外)
{
Logger.Error(例如,“异常:{ex}”,null);
ThrowhttpExceptionError(例如ToString());
}
返回请求.CreateResponse(HttpStatusCode.OK,覆盖);
}
我能够在调试模式下从单元测试项目的控制器中点击方法GetOverrides
,但问题是我不能点击BAL方法projectService.GetOverrides(项目Id)代码>返回空值
请帮我解决上述问题。请查看关于邮寄代码的指南。尤其要确保发布如何设置您的模拟(因为我看不到任何像setup(…)
这样配置它的调用,例如,如果您使用moq)和控制器的构造函数(您可以在其中设置projectService
属性)ASP.NET MVC 6被重命名为ASP.NET核心MVC-这就是您使用的吗?不,我使用的是ASP.NET MVC 6而不是核心MVC