SilkTest系列---高级篇(Silk4J)之单元测试的数据源驱动
本帖最后由 沅芷湘兰 于 2013-8-14 11:32 编辑Silk4J系列本身就引入了单元测试的框架,所以在Silk4J中我们可以引入feed4junit来进行单元测试,先读取相关的数据文件,然后将其赋值给脚本。主要实现过程如下:
feed4junit配置过程
将feed4junit的jar包导入到项目jar包内,再引用Feeder.class,主要的代码片段如下:
import com.borland.silktest.jtf.TextField;
import org.junit.runner.RunWith;
@RunWith(Feeder.class)
public class Silk4JavaXPCalc {
……
}
从外部导入数据
主要的代码片段如下:
@Source("dataSource\\case1.csv")
注意:
在.csv文件中,当传入的数据中有+,-,*,/等特殊符号时,文件会自动转换,然后导致传入的数据不准确,所以在此处请做好字符的转义工作,如下图所示:
利用feed4junit将数据导入并进行脚本处理等,主要代码片断如下:
//从文件传入数据并做好数据类型的转换
@Source("dataSource\\case1.csv")
//将读取后的数据通过input1,oper,input2,result参数传入
public void Silk4JavaXPCalc1(String input1,String oper,String input2,double result) {
String operate = oper.replace("'", "");
……
}
由于数据文件对字符进行了转义,所以此处需要将其进行Replace处理。
将传入的数据对脚本进行赋值,主要代码片断如下:
desktop.<Window>find("/Window[@caption='计算器']").setActive();
desktop.<PushButton>find("/Window[@caption='计算器']//PushButton[@caption='C']").select();
desktop.<PushButton>find("/Window[@caption='计算器']//PushButton[@caption='" + input1 + "']").select();
if (operate.equals("x"))
{
desktop.<PushButton>find("/Window[@caption='计算器']//PushButton").select();
}
else
{
desktop.<PushButton>find("/Window[@caption='计算器']//PushButton[@caption='" + operate + "']").select();
}
desktop.<PushButton>find("/Window[@caption='计算器']//PushButton[@caption='" + input2 + "']").select();
其中由于“*”号在SilkTest对象属性识别为“//PushButton”,而不能像其他的“+”,“-”,“/”一样识别为“@caption='" + operate + "'"”,同时由于Java语言并不能将“*”号识别为字符串,所以在此处以“x”来代替并做了判断,如果operate == "x",就会执行不同的操作。
至于feed4junit大家可以参考“单元测试一条龙1.50final”
页:
[1]