我々は、いくつかのコントローラを持っている。このような何かを言う:Spring MVC統合テスト - ルックアップ要求のマッピングパス?
@Controller
@RequestMapping("/api")
public Controller UserController {
@RequestMapping("https://stackoverflow.com/users/{userId}")
public User getUser(@PathVariable String userId){
//bla
}
}
我々は、このための統合テストを持っているが、言う:
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@SpringApplicationConfiguration(classes= MyApp.class)
@IntegrationTest("server:port:0")
public class UserControllerIT {
@Autowired
private WebApplicationContext context;
@Test
public void getUser(){
test().when()
.get("/api/users/{userId}", "123")
.then()
.statusCode(200);
}
}
我々はハード「/ API /ユーザー/を{コーディングを回避するにはどうすればよいですuserId} "テストでは?要求マッピングを名前でどのように調べることができますか。上記のリクエストマッピングのデフォルト名はUC#getUserである必要があります。
私が見たのは、MvcUriComponentsBuilderのようなものです。要求のコンテキスト内で使用する必要があるようです.jspsを使用してコントローラへのURLを生成します)。
これを処理する最善の方法は何ですか?コントローラ上の静的な文字列としてマッピングを公開する必要がありますか?私は少なくともそれを避けることを好むだろう。
マッピングを使用したくない場合は、注釈を調べるために、クラスやメソッド名とリフレクションを使用してマッピングを抽出することができます。 – DavidA