【发布时间】:2019-04-09 17:03:13
【问题描述】:
我正在处理 jbehave 场景。我的步骤使用 switch 语句。 可能有很多这样的标签。 这意味着每次我必须添加另一个案例语句。
如何用 OOP 替换 switch 语句?
现在我通过枚举来区分选项卡,因为只能从 jbehave 接收字符串。
但我相信还有更优雅的方式。
当我在编辑器中打开出版物并转到“受众”选项卡时
@When("I open publication in Editor and go to $tab tab")
public void openEditorAndGoToTab(String tab){
TaggingUiTabs enumTab = EnumTextMatcher.matchEnum(tab,
TaggingUiTabs.getAllTabs());
editorWindow.goToTaggingUi();
switch (enumTab){
case AUDIENCE:
taggingUi.goToAudienceTab();
break;
}
}
【问题讨论】:
-
简单的答案是让每个不同的案例成为一个类,该类使用
goToTab之类的方法实现接口,然后您只需调用类方法而不是手动分派。不过,如果没有更多背景信息,如果您能够获得更深入的建议,请不吝赐教。 -
JBhehave 可以自动将输入参数转换为任何 Enum 类型
标签: java oop switch-statement jbehave