小编MSI*_*MSI的帖子

静态方法:何时何时不

我是TDD和DDD的新手,我有一个关于静态方法的简单问题.TDD的大多数专家用一句话说静态方法是坏的(我们应该忘记创建大量的静态实用程序,我们(或我)以前用过它们是不可测试的.我可以看出为什么它们是不可测试(这里可以找到一个很棒的澄清文章,对于那些感兴趣的人,但我想我是这里唯一的菜鸟:()但是我想知道从TDD角度来看使用静态有一个很好的干净指南吗?

对于大多数人来说,这可能是一个非常愚蠢的问题,但是一些提示会很棒,我只想知道这里的专家如何看待静态的东西.提前致谢.

编辑:在寻找答案的过程中,我找到了2个关于静态使用的其他好线程(虽然不是TDD关注),我觉得对于那些感兴趣的人(我自己也包括在内)很好.

.net tdd domain-driven-design

8
推荐指数
3
解决办法
1229
查看次数

ASP.NET + NUnit:使用.NET 4的HttpModule的良好单元测试策略

我有以下HttpModule,我想进行单元测试.问题是我不允许更改访问修饰符/ static,因为它们需要保持原样.我想知道测试以下模块的最佳方法是什么.我在测试内容方面还很陌生,主要是寻找有关测试策略和一般测试HttpModules的技巧.仅仅是为了澄清,我只是试图获取每个请求的URL(仅限.aspx页面)并检查所请求的URL是否具有权限(对于我们的Intranet中的特定用户).到目前为止,感觉我无法真正测试这个模块(从生产的角度来看).

public class PageAccessPermissionCheckerModule : IHttpModule
    {
        [Inject]
        public IIntranetSitemapProvider SitemapProvider { get; set; }
        [Inject]
        public IIntranetSitemapPermissionProvider PermissionProvider { get; set; }

        public void Init(HttpApplication context)
        {
            context.PreRequestHandlerExecute += ValidatePage;
        }

        private void EnsureInjected()
        {
            if (PermissionProvider == null)
                KernelContainer.Inject(this);
        }

        private void ValidatePage(object sender, EventArgs e)
        {
            EnsureInjected();

            var context = HttpContext.Current ?? ((HttpApplication)sender).Context;

            var pageExtension = VirtualPathUtility.GetExtension(context.Request.Url.AbsolutePath);

            if (context.Session == null || pageExtension != ".aspx") return;

            if (!UserHasPermission(context))
            {
                KernelContainer.Get<UrlProvider>().RedirectToPageDenied("Access denied: " + context.Request.Url);
            }
        } …
Run Code Online (Sandbox Code Playgroud)

asp.net nunit c#-4.0

6
推荐指数
2
解决办法
2294
查看次数

Umbraco CMS(.NET):加载xslt /用户控件的日志错误

我想知道Umbraco是否有办法记录我们在加载xslt或用户控件时无法获得的错误.通常它会显示一个红色框,表示无法加载控件和内容.有没有办法正确记录这个?

提前致谢.

asp.net user-controls umbraco

5
推荐指数
1
解决办法
1093
查看次数

ASP.NET HttpModule:检测会话中的第一个请求

我为我们的站点编写了一个HttpModule,它通常接受请求并检查特定的文件扩展名以及特定会话变量的值.是否可以检测会话中的第一个请求?

asp.net httpmodule

4
推荐指数
1
解决办法
1977
查看次数