方法如下为测试的代码:
private void Sort(int[] list)
        {
            int temp;
            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 9 - i; j++)
                {
                    if (list[j] > list[j + 1])
                    {
                        temp = list[j];
                        list[j] = list[j + 1];
                        list[j + 1] = temp;
                    }
                }
            }
        }
下面为实现:
private void Form1_Load(object sender, EventArgs e)
        {            
            int[] s = new int[] { 2, 1, 3, 5, 4, 77, 7, 8, 69, 9 };
            Sort(s);
            for (int m = 0; m < 10; m++)
            {
                label1.Text = label1.Text + " " + s[m].ToString();
            }
        }

解决方案 »

  1.   

    在Sort函数中F9加入断点,F10或F11单步调试就可以了
      

  2.   

    你可以直接在Form1_Load中写断言,例如private void Form1_Load(object sender, EventArgs e)
      {   
      int[] s = new int[] { 2, 1, 3, 5, 4, 77, 7, 8, 69, 9 };
      Sort(s);
      Debug.Assert(s.Length==10);
      Debug.Assert(s[2]==3);
      Debug.Assert(s[9]==77);
      for (int m = 0; m < 10; m++)
      {
      label1.Text = label1.Text + " " + s[m].ToString();
      }
      }我从来不使用vs的单元测试,我们使用自己的写的测试引擎(其实也就几十行代码)。所谓测试,不过就是作为引擎可以加载那些包括了断言的form_load之类的小程序。这里关键的技术是懂得写上断言,而如何让断言执行,我相信你完全可以有许多种方法,不一定要用庞大而无用的vs的什么单元测试。
      

  3.   

    举个例子吧。你可以在自己的代码中写Action[] TestCases= new Action[]{test1, test21, XXX.YYY.method32, ...... };这样就将你的测试用例小程序预先注册到一个数组里了。然后,你就可以写一个循环,依次调用这些方法,再打乱它们的次序依次调用,再并发多线程调用,在通过反射方法上的一两个Attribute来调出最近3天的测试用例单独调用、或者挑出某类测试用例来单独调用.....自己写个几十行的小Console程序,就可以成为一个很好的测试引擎。
      

  4.   

    多年前我推荐的一篇关于c++测试驱动入门文章:http://www.kuqin.com/testing/20080423/7469.html实际上,测试引擎就是很简单的小程序。千万别搞繁琐了。