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

c# – 最好测试一个函数是否需要在其内部或外部?

发布时间:2020-12-15 04:21:41 所属栏目:百科 来源:网络整理
导读:最好的做法是什么?调用一个函数然后返回,如果你测试一些东西,或者测试一些东西然后调用? 我更喜欢函数内部的测试,因为它可以更容易地查看所调用的函数. 例如: protected void Application_BeginRequest(object sender,EventArgs e) { this.FixURLCosmetic
最好的做法是什么?调用一个函数然后返回,如果你测试一些东西,或者测试一些东西然后调用?

我更喜欢函数内部的测试,因为它可以更容易地查看所调用的函数.

例如:

protected void Application_BeginRequest(object sender,EventArgs e)
        {
            this.FixURLCosmetics();
        }

private void FixURLCosmetics()
        {
            HttpContext context = HttpContext.Current;
            if (!context.Request.HttpMethod.ToString().Equals("GET",StringComparison.OrdinalIgnoreCase))
            {
                // if not a GET method cancel url cosmetics
                return;
            };

            string url = context.Request.RawUrl.ToString();
            bool doRedirect = false;

            // remove > default.aspx
            if (url.EndsWith("/default.aspx",StringComparison.OrdinalIgnoreCase))
            {
                url = url.Substring(0,url.Length - 12);
                doRedirect = true;
            }

            // remove > www
            if (url.Contains("//www"))
            {
                url = url.Replace("//www","//");
                doRedirect = true;
            }

            // redirect if necessary
            if (doRedirect)
            {
                context.Response.Redirect(url);
            }
        }

这个好吗:

if (!context.Request.HttpMethod.ToString().Equals("GET",StringComparison.OrdinalIgnoreCase))
            {
                // if not a GET method cancel url cosmetics
                return;
            };

还是应该在Application_BeginRequest中进行测试?

什么是更好的?

日Thnx

解决方法

我觉得测试里面的功能比较好.如果你在这个函数之外测试,你必须测试所有的函数可以被调用(并且会导致很多重复的代码).

把所有东西都放在一个地方,然后在各地传播更好.

(编辑:李大同)

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

    推荐文章
      热点阅读