C# 实例化控制器时的xUnit问题

C# 实例化控制器时的xUnit问题,c#,asp.net-mvc,unit-testing,xunit,C#,Asp.net Mvc,Unit Testing,Xunit,我试图测试我的控制器是否返回ViewResult,但在创建控制器实例时遇到了问题 这个名为MySampleController的控制器在构造函数中使用文件/Config/sample.Config,但是当我从UnitTest项目执行测试时,我得到一个错误原因是在UnitTest项目的bin/sample.dll.Config中搜索sample.Config,而不是使用我的网站.MVC/bin上的sample.Config 这是我的项目结构: Website.MVC --> /Contro

我试图测试我的控制器是否返回ViewResult,但在创建控制器实例时遇到了问题

这个名为MySampleController的控制器在构造函数中使用文件/Config/sample.Config,但是当我从UnitTest项目执行测试时,我得到一个错误原因是在UnitTest项目的bin/sample.dll.Config中搜索sample.Config,而不是使用我的网站.MVC/bin上的sample.Config

这是我的项目结构:

Website.MVC

--> /Controllers/MySampleController.cs

--> /Config/sample.config

Website.UnitTests

--> /Controllers/MySampleControllerTests.cs
这里是我用xUnit创建的单元测试

    /// <summary>
    /// All tests related with MySampleController
    /// </summary>
    public class MySampleControllerTests
    {
        /// <summary>
        /// Checks that view model cannot be null
        /// </summary>
        [Fact]
        public void ActionResult_Is_Not_Null_On_Index_Action()
        {
            //arrange
            var controller = new MySampleControllerController();
            //act
            var result = controller.Index();
            //assert
            Assert.NotNull(result);
        }
    }
这类问题通常如何解决

提前谢谢

问候


Jose.

那么在mySampleController构造函数中,您使用的是/Config/sample.Config吗?它是硬编码还是什么?是的,是硬编码,遗憾的是,这是一段我无法更改的代码。将其转换为外部dll。。。有什么想法吗?我们可以看到索引操作中的代码吗?只返回一个ViewResult:return View,仅此而已。一种方法是创建mySampleController构造函数,该构造函数将接受参数,仅用于测试目的。通过这种方式,您可以模拟构造函数中的依赖关系。只是如果没有看到无参数的构造函数代码,就很难确定。你能把它寄出去吗?