黄瓜:将方法从一步定义调用到另一步定义的最佳实践

时间:2018-02-06 15:46:38

标签: java cucumber

我正致力于自动化Web服务,我正在生成运行时URL并将其添加到上下文中,然后继续在该URL上执行PUT。 我有一个功能文件,stepdefinition和StepDefinitionBase文件(这个代码用于初始化上下文,将url添加到上下文,清除上下文等)。 我的功能文件是:

Scenario: Validate PUT call     
    Given I create my  PUT url from "/api/test/"
    When method used is Put
    Then Status code equals 200
    And Validate the response

StepDefinitionBase类:

public class StepDefinitionBase {

    private ExecutionContext context;

    @Before
    public void initializeContext() {
          context = ExecutionContexts.currentContext();
    }

      public void addUrlToContext(String serviceUrl) {
        context.dictionary.put("serviceUrl", serviceUrl);
    }


    @After
    public void clearContext() {

        ExecutionContexts.purgeCurrentContext();
    }

现在我的流程是:作为Given的一部分,我在我的stepdefinition文件中有一个方法,它创建一个运行时URL(将ID附加到" api / test")然后我需要将此生成的URL添加到我的上下文中。         我的上下文被创建(使用" Before标签)并在另一个StepDefinitionBase文件中更新。但我的问题是当我试图从我的stepdefinition文件中调用该方法(在StepDefinitionBase文件中)时,它不会被调用,而是在" After"之后的方法。标签被称为 与清除上下文有关,这不是我想要的。         我想我做得不对。有人可以建议是否有更好的方法来做到这一点。 Apreciate帮助!

0 个答案:

没有答案