Hi,
I am planning to use cucumber-java for my java project for automated
testing. I would like to know if there is any option in cucumber, by
which we can explicitly provide dependency among running scenarios. For
example:
I have a ValidateProfile.java and a ProfileSignIn.java.
public class ValidateProfile {
...
public ValidatedProfile validate(String userName, String password) {
…
…
}
}
public class ProfileSignIn {
public void doSignIn(ValidatedProfile profile) {
…
…
}
}
Suppose I have a step definition for ValidateProfile as:
public class ValidateProfileTest {
@Given("I have user credential as (.*) and (.*)$")
public void setCredentials(String userName, String password) {
// set credentials to members
…
}
@When(“I call Validate Profile”)
public void validateProfile() {
…
ValidatedProfile profile = validateProfile.validate(_userName,
_password);
// set profile in class member
…
}
@Then("Profile should validate successfully() {
// assert contents of Validated Profile
}
}
Now I would like to create a Test case, say ProfileSignInTest, for
ProfileSignIn. As ProfileSignIn requires a ValidatedProfile, I would
like to run ValidateProfileTest prior to that and make use of the
ValidatedProfile as input to ProfileSignInTest.
Before running a scenario in ProfileSignInTest's feature(say
profilesignin.feature) , Is there any option to run the features of
ValidateProfileTest(say validateprofile.feature), get its output and
pass the same as input to profilesignin.feature 's scenario as below:
validateprofile.feature
-----------------------
@getValidatedProfiles
Given I have a username and password
When I call Validate Profile
Then Profile should validate successfully
profilesignin.feature
---------------------
@profilesignin
use output as validatedProfile from @getValidatedProfiles
Given I have the validated profile as validatedProfile
When I call SignIn
Then I should get Signed In successfully
My idea is to make use of hooks as below, and if possible pass the
output of @getValidatedProfiles to the ‘Given’ of @profilesSignin. If
that’s not possible, I can make use of a java framework to store and
retrieve the output, but the priority is to make a scenario dependent on
one or more other scenarios.
Before('@profilesignin') do
//run the scenario with tag @getValidatedProfiles
end
Other than hooks, If there are any other better ways of handling
this, please let me know.
Thanks,
Neema