我正致力于自动化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帮助!