1

私はこのような単体テストを持っています:

    @Test
    public void callRegisterByForm() {
//  AnyContentAsJson anyContentAsJson = null;
    running(fakeApplication(), new Runnable() {
            @Override
            public void run() {
                Map<String, String> map = new HashMap<String, String>();
                map.put("phoneNumber", "+5103978860");
                map.put("countryCode", "us");

                Result result = routeAndCall(fakeRequest("POST", "/register").withFormUrlEncodedBody(map));
                assertThat(status(result)).isEqualTo(OK);
                assertThat(contentType(result)).isEqualTo("application/json");
                JsonNode jsonResult = Json.parse(contentAsString(result));
                assertThat(jsonResult.get(Config.DEV_REG_STATUS_PARAM).asText()).isEqualTo("OK");
                assertThat(jsonResult.get(Config.DEV_PHONE_NUMBER_PARAM).asText()).isEqualTo("+5103978860");
            }
        });

    }

サーバーのコントローラーをテストするにはどうすればよいですか?リモートJavaアプリケーションをセットアップし、コンソールで「play debug run」を使用しようとしましたが、このテストケースを右クリックして実行、サーバーのコントローラーをブレークポイントで停止させることができませんでした。

これは、テストケースを右クリックしたときの画像です。使用するランチャーを選択するように求められます。 ここに画像の説明を入力してください

4

1 に答える 1

1

TypeSafeスタックを使用しているため、play実行可能ファイルにアクセスできません。

ただし、Playサーバーをデバッグモードで起動する方法は知っています。実はここのブログに書いています。

`export SBT_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9999` 

JVM(Playサーバーを実行している)に1つのデバッグ接続をリッスンさせるトリックを実行します。

何の後、あなたはそれを言った、あなたはに接続するリモートアプリケーションをセットアップしますlocalhost:9999

Play Consoleでは、次のオプションがあります

  • 起動testとデバッグ(コントローラーの単体テストを行っている場合)
  • アプリを手動でテストします(それ以外の場合)

編集

Eclipseでのテストの実行に関連して、クラスパスとおそらくいくつかの構成に依存しているため、実行方法がわかりません。

ただし、パッケージの下のテストクラスパスでplay debug test-only test.accounts.MyTest呼び出されたテストがあると仮定して、実行することができます。これにより、MyTestsのテストのみが実行されます。MyTesttest.accounts

開始時に、デバッガー(リモートアプリ)をjvmに接続して、コードをウォークします。

別の方法は次のようになります。* play debug1つのコンソールで、*デバッガーを接続します*別のコンソールを開いて、test-only test.accounts.MyTest必要な回数だけ実行します。

于 2012-06-04T13:16:06.313 に答える