У меня есть решение под названием MvcContacts с проектом MVC 4 с именем MvcContacts и проектом модульного тестирования с именем MvcContacts.Test (созданный автоматически, когда я проверил поле «включить модульное тестирование» в Visual Studio.
Я установил пакет NuGet Ninject.MVC в MvcContacts (проект MVC).
Я следовал этому руководству, и у меня все настроено без ошибок, и оно должно работать отлично; однако в моем проекте модульного тестирования MvcContacts.Test есть такие ошибки:
«MvcContacts.Controllers.HomeController» не содержит конструктор, который принимает 0 аргументов
Это мой HomeController
:
namespace MvcContacts.Controllers
{
public class HomeController : Controller
{
Logging.ILogger _logger;
public HomeController(Logging.ILogger logger)
{
_logger = logger;
}
public ActionResult Index()
{
ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
_logger.LogMessage(ViewBag.Message);
return View();
}
public ActionResult About()
{
ViewBag.Message = "Your app description page.";
return View();
}
public ActionResult Contact()
{
ViewBag.Message = "Your contact page.";
return View();
}
}
}
Это мой HomeControllerTest
:
namespace MvcContacts.Tests.Controllers
{
[TestClass]
public class HomeControllerTest
{
[TestMethod]
public void Index()
{
// Arrange
HomeController controller = new HomeController(); // error on this line
// Act
ViewResult result = controller.Index() as ViewResult;
// Assert
Assert.AreEqual("Modify this template to jump-start your ASP.NET MVC application.", result.ViewBag.Message);
}
[TestMethod]
public void About()
{
// Arrange
HomeController controller = new HomeController(); // error on this line
// Act
ViewResult result = controller.About() as ViewResult;
// Assert
Assert.IsNotNull(result);
}
[TestMethod]
public void Contact()
{
// Arrange
HomeController controller = new HomeController(); // error on this line
// Act
ViewResult result = controller.Contact() as ViewResult;
// Assert
Assert.IsNotNull(result);
}
}
}
Как я могу заставить мой проект модульного тестирования работать с Ninject?