2017-06-14 148 views
0

通常,人们会尝试尽可能简化步骤定义类,并将大部分业务逻辑卸载到对象模型中。作为一个经验法则,我们尝试将步骤定义类中的方法限制为绑定步骤定义方法。在步骤定义类中包含非步骤方法是否可以接受?

但是,在某些情况下,多个步骤定义使用类似的代码。一种方法是在相同的步骤定义类中以新方法提取此代码。例如:

[When(".....")] 
public void WhenX() { 
    // Do custom logic 
    commonMethod(): 
} 

[When(".....")] 
public void WhenY() { 
    // Do custom logic 
    commonMethod(): 
} 

public void commonMethod() { 
    // Common code 
} 

另一种方法是将此代码移到辅助类中。但是,由于只能在单个类中使用此代码,因此将其作用域绑定到相应的类可能更有意义。

回答

1

是的,这是可以接受的。我们可以将非步骤定义保留在同一个类中。这不会导致任何问题。

0

步骤类只是简单的旧Java类,所以你可以做任何你需要的东西。

我可能没有在我的步骤定义类中的公共方法。我会宣布它是私人的。如果应该从其他步骤使用它,我会将它写入另一个类并在步骤定义类中使用它。这样做的好处是可以更轻松地在步骤之间共享通用功能。

像这样提取逻辑可以被看作是在步骤和被测系统(即您的生产代码)之间创建帮助层的第一步。

使用辅助图层,从而保持步骤为一两行,被认为是一种好的做法。