嗨,我有这样的代码:
每个PageClass中的:
public void goToParticularTableSection(TableSectionDraggablePage tableSectionDraggablePage){
switch (tableSectionDraggablePage) {
case DefaultFunctionality:
clickOnElement(defaultFunctionalityTableHeader);
break;
case ConstrainMovement:
clickOnElement(constraintMovementTableHeader);
break;
...
}
TestLogger.log.info(tableSectionDraggablePage + " clicked");
}
对于每个PageClass,我都有另一个带枚举的类:
public enum TableSectionDraggablePage {
DefaultFunctionality,
ConstrainMovement,
...
}
如何将goToParticularTableSection方法移动到Base类中,并在每个PageClass中共同使用此方法,这样可以避免每个页面类中的代码重复?
答案 0 :(得分:0)
一个想法可能是在PageClass
中定义一些getter,如getDefaultFunctionality(), getConstrainMovement()
等,然后像这样重新设计enum
:
public enum TableSectionDraggablePage {
DefaultFunctionality,
defaultFunctionalityTableHeader,
ConstrainMovement,
constraintMovementTableHeader,
...
TableSectionDraggablePage(PageClass pageClass) {
this.DefaultFunctionality = pageClass.getDefaultFunctionality();
this.defaultFunctionalityTableHeader = pageClass.getDefaultFunctionalityTableHeader();
...
}
}
然后将goToParticularTableSection(TableSectionDraggablePage)
移至BaseClass
。
然后只需从PageClass中调用方法:
super.goToParticularTableSection(new TableSectionDraggablePage(this));