J'essaie de lancer un fichier .feature pour tester une simple application Web RESTEasy: https://github.com/dashorst/jaxrs-quickstart-resteasy .
Cependant, l’IntelliJ continue de dire que:
Undefined step: Given I am an invalid username
Undefined step: When I perform a hello request with null username
Undefined step: Then I receive a http response code of 400
Undefined step: When I perform a hello request with empty username
Undefined step: Then I receive a http response code of 400
You can implement missing steps with the snippets below:
@Given("^I am an invalid username$")
public void I_am_an_invalid_username() throws Throwable {
// Express the Regexp above with the code you wish you had
throw new PendingException();
}
// similar results...
Ci-dessous, mon fichier hello.feature
:
Feature: hello
#-------------------------------------
#next block is got the GET entry point
#-------------------------------------
#verify that with malformed input hello fails
Scenario: invalid username should fail
Given I am an invalid username
When I perform a hello request with null username
Then I receive a http response code of 400
When I perform a hello request with empty username
Then I receive a http response code of 400
#verify that you can get correct hello response with valid username. This is the 'everything works fine' path.
Scenario: User can get correct hello response with valid username
Given I am a valid username
When I perform a hello request with valid username
Then I receive a http response code of 200
import cucumber.annotation.en.Given;
import cucumber.annotation.en.Then;
import cucumber.annotation.en.When;
import cucumber.runtime.PendingException;
J'ai utilisé l'option "générer des étapes" d'IntelliJ et obtenu le fichier MyStepdefs
.
/**
* Created by z on 5/21/17.
*/
public class MyStepdefs {
@Given("^I am a valid username$")
public void iAmAValidUsername() throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
@Given("^I am an invalid username$")
public void iAmAnInvalidUsername() throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
@When("^I perform a hello request with null username$")
public void iPerformAHelloRequestWithNullUsername() throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
@Then("^I receive a http response code of (\\d+)$")
public void iReceiveAHttpResponseCodeOf(int arg0) throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
@When("^I perform a hello request with empty username$")
public void iPerformAHelloRequestWithEmptyUsername() throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
@When("^I perform a hello request with valid username$")
public void iPerformAHelloRequestWithValidUsername() throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
}
J'avais essayé de spécifier le chemin de collage pour chaque scénario, mais cela ne fonctionnait pas. Je ne suis pas sûr de ce qui s'est passé. Merci pour tout conseil!
J'ai examiné plusieurs questions existantes mais aucune d'entre elles n'aide:
Concombre: étape non définie, bien que cette étape doive être définie
Parfois, cela se produit lorsqu'il existe des références enregistrées aux anciens noms des packages. Si les packages ont été renommés, vous devez vérifier s’il existe des références aux anciens noms (Configurations Cucumber Run/Debug) et les supprimer.
Sincères amitiés
Essaye ça:
Test Resources Root
Feature
contient step_definitions
comme Glue
Après ces vérifications, les étapes doivent être reconnues.
Je recommanderai une solution étape par étape tant qu'il existe les solutions correctes ci-dessus.