1
私はSpringブートアプリケーションを作成しました。これは私のコントローラの外観です。私は郵便配達員を使用してリクエストボディにjsonを、リクエストヘッダーに文字列を送り、さらにjsonをハッシュし、リクエストヘッダで得られた文字列と比較しています。問題は、MockMvcを使用してそれぞれのControllerクラスをテストするために、リクエスト本体とリクエストヘッダーを取得することに気づいていないことです。spring mvcテストのリクエストボディとリクエストヘッダーへのアクセス
コントローラロジック
@RestController
public class Comparison {
@PostMapping(path = "/test")
public boolean compareHash(@RequestBody String json,
@RequestHeader(value = "code") String oldHashValue) {
Hash hashObj = new Hash();
String newHashValue = hashObj.sha512(json);
return oldHashValue.equals(newHashValue);
}
}
テストロジック
public class ComparisionTest {
@Autowired
private WebApplicationContext wac;
private MockMvc mockMvc;
@Before
public void setup() {
DefaultMockMvcBuilder builder = MockMvcBuilders.webAppContextSetup(this.wac);
this.mockMvc = builder.build();
}
@Test
public void contextLoads() throws Exception {
RecordedRequest recordedRequest = server.takeRequest();
}
}
上記要求から本体とヘッダ値を取得するためのコードとハッシュを等しくする(本体)に私を助けてくださいヘッダー値付き
は、このハッシュ値を取得するのnそれがコントローラに到達するヘッダ値 – Sunil
とそれを比較することでreqハッシュ関数にJSON文字列を送信しますあなたの関数のフォームにそれを処理する必要があります – Barath
と私はそれがどのようにコンテンツ()からjsonの文字列を取ると私は "キー"のヘッダー名を言及する必要があります... ...私はこの事に新しいです – Sunil