我做了一个自定义模型,我想嘲笑它.我对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)
单元测试 …