2016-08-03 91 views
0

我使用java和黄瓜,并有一个反复使用所有我的方案的步骤。 我知道我可以重用场景,但如果我这样做,我仍然有问题。Java和黄瓜如何重用场景多线程

假如我想重用的情况是:

给定用户存在

步骤DEF是

@ContextConfiguration(classes = AppConfiguration.class) 
public class UserStepDef { 

    User user; 

    @ Given("^A user exists$") 
    public void a_user_exists() { 

     user = createUser(); 
    } 
} 

步骤定义创建用户对象的实例并将其分配给稍后将在以下步骤中使用的字段“用户”。 我可以访问该字段的唯一方法是运行该步骤的类的实例 - > userStepDef.user。 我想在不同的功能文件中重复使用该步骤定义,但由于包含“user”的类是单例,因此无法并行运行测试。

有没有更好的方法?我想念什么?

回答

0

如果我正确理解你的问题,你想要的不是并行运行场景,而是在不同的步骤文件之间共享一些数据。是这样吗?

如果答案是肯定的,可以看看使用Cucumber的依赖注入方法。这将允许您在不同的java文件中共享类实例。

+0

嗨尤金,我已经使用依赖注入,我想要的是能够并行运行测试,允许不同的场景使用相同的步骤定义,但不共享数据之间不同的场景。 例如我有情景1和情景2,他们都有“给定一个现有用户”的步骤,我不想重复代码,我只想在我的UserStepDefinition.java类中定义一次该步骤。我在那里创建的数据:用户实例不应该在方案1和方案2之间共享,每个方案都有自己的用户。 – ttati