asp.net-mvc – 如何在MVC中测试ModelMetadata.FromLambdaExpression?
发布时间:2020-05-23 03:16:52 所属栏目:asp.Net 来源:互联网
导读:我有一个MVC4项目中的助手类的扩展方法: public static class ExtensionMethods{ public static object ValueTModel, TProperty(this ExpressionFuncTModel, TProperty expression, ViewDataDictionaryTModel viewData
|
我有一个MVC4项目中的助手类的扩展方法: public static class ExtensionMethods
{
public static object Value<TModel,TProperty>(this Expression<Func<TModel,TProperty>> expression,ViewDataDictionary<TModel> viewData)
{
return ModelMetadata.FromLambdaExpression(expression,viewData).Model;
}
}
这样做非常简单,只是简单的方式. 那么,如何最好地进行单元测试呢?最好避免模拟静态方法或使用依赖注入,但如果这些确实是这种情况下唯一可行的方法,那么我是开放的. 这只是一个有缺陷的设计,可以改进,以便更适合单元测试吗? 解决方法这确实是一个有缺陷的设计,可能很常见.正确的方法签名需要切换参数顺序:public static object Value<TModel,TProperty>(this ViewDataDictionary<TModel> viewData,Expression<Func<TModel,TProperty>> expression)
{
return ModelMetadata.FromLambdaExpression(expression,viewData).Model;
}
然后可以从单元测试中调用它: Expression<Func<Model,string>> expression = (t => t.PropertyName); ExtensionMethods.Value<Model,string>(viewData,expression)); (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 为什么删除:ASP.NET MVC CheckBoxList(没有
- ASP.NET WebApi:(405)方法不允许
- Asp.Net成员 – 实体框架4中的提供商
- asp.net-mvc – 使用BootstrapValidator与MVC DataAnnotati
- Asp.net形成身份验证登录循环
- asp.net – DropDownList获取底层对象
- asp.net-mvc – Azure托管的ASP.NET MVC网站删除与客户端缓
- asp.net – 由于其保护级别,未声明变量可能无法访问
- asp.net-mvc – 官方的“如何”MVC编辑器/显示模板?
- asp.net-mvc – ASP.NET MVC母版页
推荐文章
站长推荐
- asp.net – Intranet / Internet的Windows身份验
- asp.net-mvc-4 – 返回状态代码未经授权在WebAPI
- asp.net-mvc – 如何检测不引人注目的验证是否成
- ASP.NET Identity会话cookie的安全性如何?
- asp.net – 在Page_Load之前处理事件
- asp.net-mvc-3 – Razor语法中的ValidateRequest
- asp.net-mvc – 如何根据设备类型更改ASP.NET MV
- entity-framework – 如果EF 5,如何定义自定义命
- ASP.Net哪个用户帐户在IIS 7上运行Web服务?
- asp.net-mvc – 针对SAAS的多租户客户端特定定制
热点阅读
