小编med*_*4th的帖子

如何在ASP.NET MVC中模拟模型?

我做了一个自定义模型,我想嘲笑它.我对MVC很新,对单元测试也很陌生.我见过的大多数方法都为类创建了一个接口,然后创建一个实现相同接口的模拟器.但是,当实际将接口传递到View时,我似乎无法使其工作.提示"简化"的例子:

模型-

public interface IContact
{
    void SendEmail(NameValueCollection httpRequestVars);
}

public abstract class Contact : IContact
{
    //some shared properties...
    public string Name { get; set; }

    public void SendEmail(NameValueCollection httpRequestVars = null)
    {
        //construct email...
    }
}

public class Enquiry : Contact
{
    //some extra properties...
}
Run Code Online (Sandbox Code Playgroud)

视图-

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<project.Models.IContact>" %>

<!-- other html... -->

<td><%= Html.TextBoxFor(model => ((Enquiry)model).Name)%></td>
Run Code Online (Sandbox Code Playgroud)

控制器 -

    [HttpPost]
    public ActionResult Index(IContact enquiry)
    {
        if (!ModelState.IsValid)
            return View(enquiry);

        enquiry.SendEmail(Request.ServerVariables);
        return View("Sent", enquiry);
    }
Run Code Online (Sandbox Code Playgroud)

单元测试 …

asp.net-mvc unit-testing mocking

3
推荐指数
1
解决办法
3217
查看次数

标签 统计

asp.net-mvc ×1

mocking ×1

unit-testing ×1