我以这种方式设置我的测试
@SpringBootTest
@AutoConfigureMockMvc
@RunWith( SpringRunner.class )
public class PublicControllerTest {
@Autowired
private MockMvc mvc;
这是我的控制器签名
@GetMapping( produces = MediaTypes.HAL_JSON_VALUE )
ResponseEntity<ResourceSupport> index( final HttpRequest request ) {
现在它似乎正在注入代理值,但是如果你打电话给request.getURI()
,它似乎是空的。
我正在尝试这样做,因此我可以将请求传递给UriComponentsBuilder.fromHttpRequest( )
,这是由我的控制器中的先前linkTo
方法调用的,并且它们没有获得代理/ null。
我如何获得HttpRequest? (注意:我不希望/不能使用HttpServletRequest
哪个被传递正常但不是UriComponentsBuilder
答案 0 :(得分:1)
所以我可以使用HttpServletRequest
@GetMapping( produces = MediaTypes.HAL_JSON_VALUE )
ResponseEntity<ResourceSupport> index( final HttpServletRequest request ) {
但它必须被包裹?通过ServletServerHttpRequest
获取我想要的界面。
HttpRequest httpRequest = new ServletServerHttpRequest( request )