技术开发 频道

基于MVC框架开发Web论坛之测试篇

  五、 创建论坛控制器

  接下来,我们需要创建论坛控制器—ForumController。此控制器将会负责针对用户请求生成响应。其实现代码列举于列表5中。
  列表5–Controllers\ForumController.cs
 

using System;
using System.Web.Mvc;
using MvcForums.Models;

namespace MvcForums.Controllers
{
    
public class ForumController : Controller
    {
        
private IForumRepository _repository;

        
public ForumController()
            : this(
new ForumRepository())
        { }

        
public ForumController(IForumRepository repository)
        {
            _repository
= repository;
        }

        
public ActionResult Index()
        {
            ViewData.Model
= _repository.SelectThreads();
            return View(
"Index");
        }
    }
}

  另外还应注意到,该论坛控制器还利用了构造器依赖性注入技术。当ASP.NET MVC框架在一个运行时刻应用程序中实例化ForumController类时将使用无参的构造器。这个构造器能够创建访问实际数据库的ForumRepository类的一个实例。另一方面,在单元测试内部,则使用构造器接收一个ForumRepository类型参考的构造器。在单元测试中,我们将把一个带有一个虚构的DataContext的repository传递到论坛控制器。

1
相关文章