加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 编写单元测试以验证所有ASP.NET MVC控制器是否继

发布时间:2020-12-16 06:23:14 所属栏目:asp.Net 来源:网络整理
导读:感谢您提前回答.我刚刚开始深入研究asp.net mvc web应用程序的单元测试. 我有几个控制器,所有控制器都继承自BaseController(这个BaseController负责菜单,租户检查等).我想知道是否有一种方法可以对所有控制器进行单元测试,以确保它继承自BaseController. 解
感谢您提前回答.我刚刚开始深入研究asp.net mvc web应用程序的单元测试.

我有几个控制器,所有控制器都继承自BaseController(这个BaseController负责菜单,租户检查等).我想知道是否有一种方法可以对所有控制器进行单元测试,以确保它继承自BaseController.

解决方法

这几乎听起来更适合静态分析,例如Visual Studio的代码分析功能(AKA“FxCop”).但我以前写过代码分析规则,我不确定我会推荐它,除非你头上满是头发,并希望拔掉你所有的头发!

所以回到单元测试:

在单元测试中,策略是在控制器组件中找到所有控制器类型,并确保它们具有正确的基类.这是一些伪代码:

Type[] allTypes = typeof(SomeTypeInTheAssembly).Assembly.GetExportedTypes();
Type[] allControllerTypes = allTypes.Where(
    t => typeof(IController).IsAssignableFrom(t));
Type[] allControllerTypesExceptBaseClass = allControllerTypes.Except(
    t => t == typeof(BaseController);

// Assert that all controllers derive from BaseController
Assert.True(allControllerTypesExceptBaseClass.All(
    t => typeof(BaseController).IsAssignableFrom(t))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读