在写测试代码时,把locator值直接写到测试代码里面,不具备良好的可读性,同时,后期也不利于代码的维护。如下测试代码:
如果在某个build中,控件"User Name"的属性"userName"被开发人员重新改变了,这个时候,测试代码也要做相应的改动。如果把该值外部化到一个文件中,我们仅仅需要修改该文件,不需要对代码进行修改;同时,也利用以后的本地化测试。
最简单的,我们可以利用java.util.Properties,把相关的locator都定义在一个UIMap.properties文件中,如下:
构建UIMapParser类,提供统一的API来读取locator属性值:
于是,相应的测试代码可以改为:
当然,我们也可以用xml来定义一个信息更为丰富的UIMap.xml文件,比如,额外还添加控件所属的页,控件的类型,然后解析构建一个XMLParser类来读取相应的值。
添加相应的解析xml的代码:
相应的,测试代码变成: