Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ASP.NET MVC 6中实现单元测试时的依赖项注入问题_C#_Asp.net Mvc_Testing - Fatal编程技术网

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