使用当前AppDomain作为参数的单元测试

时间:2018-08-08 18:35:15

标签: asp.net-mvc unit-testing reflection

我正在研究一个asp.net mvc安全模块,该模块在我的Web项目中使用一些自定义AuthorizeAttributes来控制对各种资源的访问。

我有一个单独的项目(Project.Security),其中包含用于实现安全性的各种类。这些类之一使用反射来扫描我的Web项目(Project.Web),以查找使用我的自定义Auth Attribute装饰的所有控制器和操作,并构建所有找到的权限的列表。

我真的没有做太多的单元测试,但这对我来说是开发代码的一种好方法吗?现在,我知道要测试的唯一方法是调试整个项目。这可能很耗时,因为它可能需要一段时间才能启动,然后我必须停止整个会话以进行一些更改,然后重新启动它。

我知道反射是在运行时发生的,因此在不了解单元测试的很多情况下,我不确定是否可以做到这一点。如果还有其他方法可以推荐,我将不胜感激。

这是我要测试的方法的一个示例:

public static void ImportPermissions(this AppDomain appDomain)
    {
        var controllers = appDomain.GetAssemblies()
            .SelectMany(a => a.GetTypes())
            .Where(t => t != null
                        && t.IsPublic
                        && t.Name.EndsWith("Controller", StringComparison.OrdinalIgnoreCase)
                        && !t.IsAbstract
                        && typeof(IController).IsAssignableFrom(t));

0 个答案:

没有答案