Rag*_*esh 5 asp.net-mvc unit-testing controller
我有一个控制器覆盖OnActionExecuting并做这样的事情:
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
string tenantDomain = filterContext.RouteData.Values["tenantDomain"] as string;
if (!string.IsNullOrWhiteSpace(tenantDomain))
{
using (var tx = BeginTransaction())
{
this.Tenant = repo.FindOne(t => t.Domain == tenantDomain);
}
}
}
Run Code Online (Sandbox Code Playgroud)
Tenant是一个受保护的财产与私人二传手.该类本身是我的真实控制器派生的抽象基本控制器.我在其他控制器中的代码看起来很像这样:
if (Tenant == null)
{
// Do something
}
else
{
// Do something else
}
Run Code Online (Sandbox Code Playgroud)
我该如何测试这段代码?我需要做的是以某种方式设置租户属性,但我不能,因为:
改变可见度Tenant并不"感觉"正确.我对派生控制器进行单元测试的替代方案是什么?
使用反射?
像这样的东西应该有效(未经测试):
YourController.GetType()
.GetProperty("Tenant", BindingFlags.NonPublic | BindingFlags.Instance)
.SetValue(yourControllerInstance, null, theTestValue);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
453 次 |
| 最近记录: |