-
Notifications
You must be signed in to change notification settings - Fork 2
Step Data management
Ričardas edited this page Nov 17, 2022
·
1 revision
Step data ideally should be passed by variables within StepDefs classes. Example:
public class SystemApiStepDefs extends BaseStepDefs {
@Autowired
private FeignSystemApi feignSystemApi;
private ResponseEntity<SystemStatusDto> response;
@Then("System status is requested")
public void systemStatusIsRequested() {
response = feignSystemApi.getSystemStatus();
}
@Then("System status is validated")
public void systemStatusIsValidated() {
final Validation.Builder validationBuilder = new Validation.Builder()
.context(response)
.title("Validate response")
.assertion(equalsStatusCodeAssertion(HttpStatus.OK));
validationService.validate(validationBuilder.build());
}
}
In cases where data is shared cross StepDefs use stepData management methods from BaseStepDefs
class.
Step data key is an enum, any new key must be defined in BaseStepDefs.StepDataKey
Example:
public class SystemApiStepDefs extends BaseStepDefs {
@Autowired
private FeignSystemApi feignSystemApi;
@Then("System status is requested")
public void systemStatusIsRequested() {
var response = feignSystemApi.getSystemStatus();
putStepData(StepDataKey.RESPONSE, response);
}
@Then("System status is validated")
public void systemStatusIsValidated() {
ResponseEntity<SystemStatusDto> response = getRequiredStepData(StepDataKey.RESPONSE);
final Validation.Builder validationBuilder = new Validation.Builder()
.context(response)
.title("Validate response")
.assertion(equalsStatusCodeAssertion(HttpStatus.OK));
validationService.validate(validationBuilder.build());
}
}