Home > database >  Cucumber the same random class in diffrent scenarios
Cucumber the same random class in diffrent scenarios

Time:05-01

I have Two Cucumber scenarios. On each sceanrio I want to use the same random_document

in my Steps class I have:

public class PatientCreateSteps {
private final String RANDOM_DOCUMENT='ABC' RandomStringUtils.randomAlphabetic

....

#in the featurefile:
Scenario: Add patient documentation

@When ("StepsFromScenarioI)
.....
@Then("StepsFromScenarioI)

Scenario: Update patients documentaion

@When("StepsFromScenarioII)

Is it possible to change something to not generating new RANDOM_DOCUMENT in the second class?

CodePudding user response:

It depends on what you are trying to do. If you want the same random string in all scenarios in a single test run you could make it static.

public class PatientCreateSteps {
private static final String RANDOM_DOCUMENT='ABC' RandomStringUtils.randomAlphabetic

....

But if you are trying to share a specific document between two scenarios you can not do that.

Consider creating it from scratch and specifying what exactly needs to be the same. For example

Scenario: A patient with a document
  Given a patient
  And a document for that patient
  ...


Scenario: A patient with the same document as another patient
  Given a patient
  And a document for that patient that is the same as another patients document
  ...

Here after creating the patient you'd create a second patient and give him a document, the give the first patient a copy of the second patients document.

This may sound in efficient. Especially if you're used to manually test things. But computers are pretty fast and/or can do things in parallel. So it's more important to keep each scenario independent.

  • Related