null2 发表于 2008-3-11 14:55:42

本人的很烂的C#单元测试的数据驱动的方法

第一种:使用visual studio中的unit test。数据源:access。
步骤:
   1. 添加数据源(主菜单-->数据-->添加数据源)
   2. 连接字符串(可参考msdn)
         
         
      
    3. 使用TestContext.DataRow["字段名"]取相应自段的数据。

null2 发表于 2008-3-11 14:56:06

第二种:直接编程

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using Appconsole;


namespace testIO
{
    class testIOPro
    {
      static void Main(string[] args)
      {

            //==============================================================================================
            //===从数据源(文件C:\DS.csv)取测试数据
            //==============================================================================================
            string[] s = System.IO.File.ReadAllLines("C:\\DS.csv"); //DS.csv中的数据以数组s中
            
            // tcno:测试用例编号
            // input1:输入参数1
            // input2:输入参数2
            string[] tcno=new string;
            string[] input1 = new string;
            string[] input2 = new string;

            // 分割字符串,获取用例编号和参数
            for (int i = 0; i < s.Length; ++i)
            {
                string[] t = s.Split(',');
                tcno = t;
                input1 = t;
                input2 = t;
            }



            //==============================================================================================
            //===执行用例,并导出结果
            //===被测方法:public string consoled(string ss1, string ss2)
            //==被测方法属于:
            //      namespace Appconsole
            //          public class appconsole
            //==============================================================================================
            appconsole aa = new appconsole();

            bool pass = false;//用例成功状态初始化
            int passCount=0,failedCount=0;//成功和失败数统计初始化

            for (int i = 0; i < s.Length; ++i)
            {
                string expert = input1 + input2; //期望结果

                DateTime starttime = DateTime.Now;//开始时间

                string actual = aa.consoled(input1, input2);//调用被测方法
               
                DateTime endtime = DateTime.Now;    //结束时间
                TimeSpan DT = (endtime-starttime);//用例执行时间段

                //结果比对
                if (expert == actual) pass = true;
                else pass = false;

                //成功失败计数
                if (pass == true) ++passCount;
                else ++failedCount;

                //输入用例执行情况
                File.AppendAllText("C:\\output.csv", tcno + ',' + expert + ',' + actual + ',' + pass + ',' + DT + '\n');
            }
            //输入成功失败数
            File.AppendAllText("C:\\output.csv", "成功数:" + passCount + '\n' + "失败数:" + failedCount);

      }

    }
}
页: [1]
查看完整版本: 本人的很烂的C#单元测试的数据驱动的方法