【发布时间】:2012-11-21 15:03:35
【问题描述】:
我在一个 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;
}
}
这以绝非简单的方式完成了一些非常简单的事情。
那么,如何才能最好地进行单元测试呢?最好避免模拟静态方法或使用依赖注入,但如果这些真的是这种情况下唯一可行的方法,我持开放态度。
这只是一个有缺陷的设计,可以改进以便更适合单元测试吗?
【问题讨论】:
-
这个函数应该做什么?
-
它返回由传递给 html 帮助器的 lambda 表达式标识的属性的值。
-
如果你知道这不是一个简单的方法,为什么要这样做?
-
你有什么更简单的解决方案?
标签: asp.net-mvc unit-testing c#-4.0 asp.net-mvc-4 extension-methods