Spring REST Docs produces a curl snippet which is very convenient when testing. It is equivalent to the MockMvc
call as said in its docs but it would be good if its host part can be replaced with a test server's hostname (including port) instead of localhost
. Is it possible to achieve it with the current version of it?
Asked
Active
Viewed 2,630 times
6

Johnny Lim
- 5,623
- 8
- 38
- 53
2 Answers
17
You can configure the host (and scheme and port) when you create the MockMvc instance:
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
.apply(documentationConfiguration(this.restDocumentation).uris()
.withScheme("https")
.withHost("example.com")
.withPort(443))
.build();

Andy Wilkinson
- 108,729
- 24
- 257
- 242
-
Thanks! I missed it already documented in http://docs.spring.io/spring-restdocs/docs/1.0.0.BUILD-SNAPSHOT/reference/html5/#configuration-uris – Johnny Lim Oct 31 '15 at 23:51
7
Using SpringBoot and autoconfiguration it could be:
@SpringBootTest
@RunWith(SpringRunner.class)
@AutoConfigureMockMvc
@AutoConfigureRestDocs(uriScheme = "https", uriHost = "myhost", uriPort = "80")
public class Test {
@Autowired
MockMvc mockMvc;
...

Max Farsikov
- 2,451
- 19
- 25
-
For some reason it doesn't worked for me, while manual configuration do the trick. – Vova Rozhkov Jul 30 '18 at 13:57