我是公司的自动化工程师.最近,我写了一段我的经理绝对不接受的代码.
我被要求为涉及不同GUI的测试用例编写一些脚本.我的经理不接受的代码部分是一个if/else声明,用于检查GUI中提示的当前语言.
我被指示使用Sikuli,因此,我知道应用程序当前设置的语言非常重要,因此我的脚本可以单击正确的按钮(根据语言而改变).
我的想法是代码遍历if/else语句然后指向正确的按钮.示例:该if/else语句确定"ok"按钮当前是Suomi翻译,因此它将单击正确的按钮.
这是我的代码示例:
switch (button) {
case "ok":
if (s.exists("imagerepo/language/catalan_ok.png") != null) {
s.click("imagerepo/language/catalan_ok.png");
} else if (s.exists("imagerepo/language/suomi_ok.png") != null) {
s.click("imagerepo/language/suomi_ok.png");
} else if (s.exists("imagerepo/language/italian_ok.png") != null) {
s.click("imagerepo/language/italian_ok.png");
} else if (s.exists("imagerepo/language/portuguese_ok.png") != null) {
s.click("imagerepo/language/portuguese_ok.png");
} else if (s.exists("imagerepo/language/english_ok.png") != null) {
s.click("imagerepo/language/english_ok.png");
} else if (s.exists("imagerepo/language/dutch_ok.png") != null) {
s.click("imagerepo/language/dutch_ok.png");
} else if (s.exists("imagerepo/language/spanish_ok.png") != null) {
s.click("imagerepo/language/spanish_ok.png");
} else if (s.exists("imagerepo/language/french_ok.png") != null) {
s.click("imagerepo/language/french_ok.png");
} else if (s.exists("imagerepo/language/latina_ok.png") != null) {
s.click("imagerepo/language/latina_ok.png");
} else if (s.exists("imagerepo/language/chinese_ok.png") != null) {
s.click("imagerepo/language/chinese_ok.png");
}
break;
...etc..
Run Code Online (Sandbox Code Playgroud)
我对上述代码的唯一抱怨是它非常难看.从功能上来说,它完全符合我的要求,100%的时间.
编辑:我认为有一个适应可能改变的按钮的开关将比为同一个按钮有10个开关更好.可以说,对于我刚才所说的,如果我正在编写脚本,我将始终知道系统将采用何种语言.
如果这是一个代码不好的例子,我该怎样做才能确定我需要按哪个"形式"的按钮?
现在值得注意的是,我正在寻找的答案实际上根本不涉及测试,而是如何以最佳方式执行上述该if/else块的功能?
Vla*_*lad 18
就像是:
String[] languages = {
"catalan_ok.png",
"suomi_ok.png",
//...
}
for (String base : languages) {
String file = String.format("imagerepo/language/%s", base);
if (s.exists(file) != null) {
s.click(file);
break;
}
}
Run Code Online (Sandbox Code Playgroud)
也许?没有测试过.
| 归档时间: |
|
| 查看次数: |
205 次 |
| 最近记录: |