検索
ホームページJava&#&チュートリアルHTTP リクエストをシミュレートし、コントローラーを呼び出すコード

この記事では、コントローラーを呼び出す HTTP リクエストのシミュレーションに関するコードを紹介します。これには特定の参考値があります。必要な友人は参照できます。お役に立てば幸いです。

前に書いた

MockMvc は Http リクエストのシミュレーションを実装しており、ネットワーク フォームを直接使用してコントローラー呼び出しに変換できるため、テストが高速化されます。高速でネットワーク環境に依存しません。一連の検証ツールも提供します。

単一のテスト コードは次のとおりです:

@RunWith(SpringRunner.class)
@WebMvcTest(MyController.class)
public class MyControllerTest {
  @Autowired
  private MockMvc mockMvc;
  /**
   * 测试方法
   */
  private void bindAndUnbindTenantPoiTest() throws Exception {
    MvcResult mvcResult = mockMvc.perform(post(${"访问的url"})
        .param("${key1}", "${value1}")
        .param("${key2}", "${value2}")
        .param("${key3}", "${value3}")) 
        .andDo(print()) // 定义执行行为
        .andExpect(status().isOk()) // 对请求结果进行验证
        .andReturn(); // 返回一个MvcResult
    jsonObject = toJsonObject(mvcResult);
    assert jsonObject.getIntValue("code") == code; // 断言返回内容是否符合预期
    assert message.equals(jsonObject.getString("message"));
  }  
}

Perform の概要

perform は、コントローラーのビジネス ロジックを呼び出すために使用されます。post や get などの多くのメソッドがあります。 Junit MockMvc Mockito 単体テストの使用を参照してください。HTTP リクエスト

パラメータ パラメータの概要

param を介して http リクエスト パラメータを追加します。形式は K-V、1 つのパラメータを 1 つのパラメータに追加するか、MultiValueMap を通じて params を使用します。 parma のソース コードの一部は次のとおりです。

/**
     * Add a request parameter to the {@link MockHttpServletRequest}.
     * <p>If called more than once, new values get added to existing ones.
     * @param name the parameter name
     * @param values one or more values
     */
    public MockHttpServletRequestBuilder param(String name, String... values) {
        addToMultiValueMap(this.parameters, name, values);
        return this;
    }

    /**
     * Add a map of request parameters to the {@link MockHttpServletRequest},
     * for example when testing a form submission.
     * </p><p>If called more than once, new values get added to existing ones.
     * @param params the parameters to add
     * @since 4.2.4
     */
    public MockHttpServletRequestBuilder params(MultiValueMap<string> params) {
        for (String name : params.keySet()) {
            for (String value : params.get(name)) {
                this.parameters.add(name, value);
            }
        }
        return this;
    }</string></p>

最後に書かれています

もう 1 つの落とし穴は、アノテーションを使用するときに、アノテーション間に重複があるかどうかを確認してください。重複していないとエラーが報告されます。 @WebMvcTest @Configuration を同時に使用するのは間違っています。詳細については、注釈ソース コード

# を参照してください。

以上がHTTP リクエストをシミュレートし、コントローラーを呼び出すコードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はsegmentfaultで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール