MvcContactsという名前の MVC 4 プロジェクトとMvcContacts.Testという名前の単体テストプロジェクトを含むMvcContactsというソリューションがあります (Visual Studio で [単体テストを有効にする] チェックボックスをオンにすると自動的に作成されます)。
Ninject.MVC NuGet パッケージを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 で動作させるにはどうすればよいですか?