シンプルなRESTEasy Webアプリケーションをテストするために.featureファイルを実行しようとしています: https://github.com/dashorst/jaxrs-quickstart-resteasy 。
ただし、IntelliJは次のように述べています。
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...
以下は私の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;
IntelliJオプションの「ステップの生成」を使用して、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();
}
}
シナリオごとに接着パスを指定しようとしましたが、機能しません。何が起こったのかわかりません。アドバイスをありがとう!
私はいくつかの既存の質問を調べましたが、どれも役に立ちません:
パッケージの古い名前への参照が保存されている場合に発生することがあります。パッケージの名前が変更されている場合は、古い名前(Cucumber Run/Debug Configurations)への参照があるかどうかを確認し、それらを削除する必要があります。
敬具
これを試して:
Test Resources Root
としてマークしますFeature
構成にstep_definitions
がGlue
として含まれていることを確認しますこれらのチェックの後、ステップが認識されます。
上記の正しい解決策がある間、私は解決策を段階的にお勧めします。
アイデア(構成)で「接着剤」を再確認してください。私の場合、間違った(依存しているプロジェクトからの接着剤ではない)接着剤を入力しているときにこのような問題を見つけました。