【发布时间】:2013-09-13 17:35:30
【问题描述】:
我有一个名为 MvcContacts 的解决方案,其中有一个名为 MvcContacts 的 MVC 4 项目和一个名为 MvcContacts.Test 的单元测试项目(在我检查了 Visual Studio 中的“启用单元测试”框。
我将 Ninject.MVC NuGet 包安装到 MvcContacts(MVC 项目)中。
我关注了this tutorial,我已经完成了所有设置,没有任何错误,它应该可以正常工作;但是,我的单元测试项目 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 一起工作?
【问题讨论】:
标签: c# unit-testing asp.net-mvc-4 ninject ninject.web.mvc