我在config.properties
中添加了无效值:
# Browser: CHROME, CHROME_NOHEAD, FF32, FF32_NOHEAD, FF64, FF64_NOHEAD
# EDGE, IE32, IE64
browser=oPerA
我使用默认子句设置开关:
public class ServiceHook {
public enum Browser {
CHROME, CHROME_NOHEAD, FF32, FF32_NOHEAD, FF64, FF64_NOHEAD, EDGE, IE32, IE64
}
public void setUp() throws Throwable {
String browserConfig = Configuration.readKey("browser"); // Reads the String from the config file
Browser browser = Browser.valueOf(browserConfig.toUpperCase());
switch (browser) {
case CHROME:
// Do something for each case
break;
case CHROME_NOHEAD: break;
case FF32: break;
case FF32_NOHEAD: break;
case FF64: break;
case FF64_NOHEAD: break;
case EDGE: break;
case IE32: break;
case IE64: break;
default:
// Do something for unsupported browser
break;
}
}
}
然而,我正在低于例外:
java.lang.IllegalArgumentException:没有枚举常量 jcucumberng.steps.defs.ServiceHook.Browser.OPERA
为什么它不触发默认条款的任何建议?
答案 0 :(得分:1)
代码没有那么远。
抛出异常的Browser browser = Browser.valueOf(browserConfig.toUpperCase());
。您必须将它放在try-catch块中以处理无效值。
答案 1 :(得分:0)
Browser browser = Browser.valueOf(browserConfig.toUpperCase());
中的问题(7 th 行),所以
在此行调试' Browser.valueOf(browserConfig.toUpperCase());' 语句,看看究竟发生了什么(看看浏览器中的值是什么)