如何在没有调试的情况下测试方法?

时间:2012-06-21 17:03:04

标签: c# visual-studio-2010 debugging methods

我有一个哈希输入字符串的方法来生成MD5传递 我可以测试他的输入输出而无需调试

private string getMD5hash(string input)
{
    //create a new instance of MD5 object
    MD5 md5Hasher = MD5.Create(); 
    //convert the input value to byte array
    byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));
    StringBuilder sBuilder = new StringBuilder();

    for (int i = 0; i < data.Length  ; i++)
    {
        sBuilder.Append(data[i].ToString("x2"));
    }
    return sBuilder.ToString();
}

我正在使用Visual Studio 2010

4 个答案:

答案 0 :(得分:2)

在Visual Studio 2010/2012中 在您正在处理的程序集中打开一个文件。
打开立即窗口(Ctrl + D,I)或调试 - &gt; Windows - &gt;即时


键入方法的全名:(到错误的IntelliSense不起作用

new ConsoleApplication1.Program().getMD5hash("stringToHash");

我没有在其他版本的Visual Studio上测试过这个。另外,请记住,当执行命令时,代码编辑器应该在感兴趣的项目中打开一个文件。切换到另一个项目中的另一个文件将不允许代码运行。

答案 1 :(得分:1)

我能想到的最快最简单的方法是在Visual Studio中创建一个控制台应用程序,并将该函数放在主类中。

然后在main函数中使用适当的输出调用上面的函数,如

void main()
{
   string inputStr = "teststring";
   Console.WriteLine(string.Format("{0} = {1}", inputStr, getMD5hash(inputStr)));
   inputStr = "anotherstring";
   Console.WriteLine(string.Format("{0} = {1}", inputStr, getMD5hash(inputStr)));
   Console.ReadKey(); // Pause at the end
}

答案 2 :(得分:0)

一切都很好

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string inputstr = Console.ReadLine();

           Console.WriteLine(string.Format("{0} = {1}", inputstr, getMD5hash(inputstr)));

            Console.ReadKey();



        }

        public static string getMD5hash(string input)
        {
            //create a new instance of MD5 object
            MD5 md5Hasher = MD5.Create();
            //convert the input value to byte array
            byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));
            StringBuilder sBuilder = new StringBuilder();

            for (int i = 0; i < data.Length; i++)
            {
                sBuilder.Append(data[i].ToString("x2"));
            }
            return sBuilder.ToString();
        }


    }
}

答案 3 :(得分:0)

一般建议是使用单元测试。这样测试仍然存在,并且您有一种简单的方法来运行它们。