API 测试 (4)

解析测试用例

 

问题

 

      如何解析出由字符分隔开的测试用例的各个字段。

 

设计

 

      使用String.Split()方法,把分隔符作为输入传给它,然后把返回值存入一个字符数组。

 

方案

 

      string line,caseID,method;

      string[] tokens,tempInput;

      string expected;

 

      whild((line = sr.ReadLine()) != null)

      {

            tokens = line.Split(':');

            caseID = tokens[0];

            method = tokens[1];

            tempInput = tokens[2].Split(' ');

            expected = tokens[3];

            //etc.

      }

 

注解

 

      把一行测试用例数据读入一个字符串变量后,调用Split()方法,把冒号作为参数传给Split()方法,得到的结果就是原字符串中以冒号分开的各个部分,然后把这些子字符串赋给字符串数据tokens。这样tokens[0]保存的就是第一个字段,也就是测试用例ID(例如“001”),tokens[1]保存的字符串是待测方法的名称(例如"ArithmeticMean"),tokens[2]保存的是以字符串形式存在的输入向量(例如"2 4 8"),tokens[3]保存的是期望值(比如"4.667")。接下来,针对tokens[2],使用一个空格罕作为参数调用Split()方法,然后把结果赋给字符串数组tempInput,如果tokens[2]的内容是"2 4 8",那么tempInput[0]的内容就是"2",tempInput[1]的内容是"4",tempInput[2]的内容是"8"。

 

      如果用到了多个分隔符,则可以创建一个包含这些分隔符的字符数组,并把这个数组传给Split(),例如:

      char[] separators = new char[] {'#',':','!'};

      string[] parts = line.Split(separators);

上述代码会把字符串变量按照"#"、":"或"!"分隔成多个子串,并且把子串赋给字符串数组parts。

 

      对于轻量级的自动化测试程序来说,Split()方法可以满足大多数简单文本文件的解析。如果不用Split(),另一种很好的方法就是使用正则表达式,。使用正则表达式的好处是,它更为强大,也就是说只用很少几行代码就可以完成很多的解析工作。正则表达式的一个缺点是,不经常使用它们的人很难理解,因为跟C#比起来,正则表达式的语法相对来说较为生僻。

你可能感兴趣的:(api,正则表达式,String,测试,C#,null)