黄瓜-jvm给定步骤的多态性

时间:2012-11-18 21:37:00

标签: cucumber polymorphism

我正在尝试在Cucumber-jvm中编写一些步骤,我有一个近似的步骤 以下内容:

@Given("I am a (regular|admin|guest) user")
 public void setUser(String userType){
     if("regular".equals(userType))
         setUserType(REGULAR);
     if("admin".equals(userType))
         setUserType(ADMIN);
     if("guest".equals(userType))
         setUserType(GUEST);
}

有没有更好的方法来编写这样的步骤,使其具有多态性?

1 个答案:

答案 0 :(得分:0)

在某些时候,你需要在字符串和它要设置的类型之间建立关系,所以如果你不想要像这样的大型if statmenet,那么设置一个地图可能就好了

这样的事情怎么样......

public static Map<String,UserType> types = new HashMap<String,UserType>();
static {
  types.put("regular", REGULAR);
  types.put("admin", ADMIN);
  types.put("guest", GUEST);
}

然后

@Given("I am a (regular|admin|guest) user")
public void setUser(String userType){
 setUserType(types.get(userType));
}