C# · 12月 23, 2021

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

最好的做法是什么?调用一个函数然后返回,如果你测试一些东西,或者测试一些东西然后调用?

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

例如:

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

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

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