2016-08-23 76 views
0
@RunWith(SpringRunner.class) 
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = ServerApplication.class) 
public class ExampleTest { 
    public static final String EXAMPLE = "/example"; 

//this is the TestRestTemplate used 
    @Autowired 
    TestRestTemplate testRestTemplate; 

//this is the test 
    @Test 
    public void testExample() { 
     String s = "asd"; 
     Object response = testRestTemplate.postForEntity(EXAMPLE, s, String.class ,Collections.emptyMap()); 
    } 
} 

這是測試的終點:TestRestTemplate postForEntity不發送requestbody春季啓動1.4

@RestController 
public class ServerController { 

    @ResponseBody 
    @PostMapping("/example") 
    public String exampleEndpoint (String in) { 
     return in; 
    } 
} 

@SpringBootApplication 
@ComponentScan("com.company.*") 
public class ServerApplication { 

等 當我調試它,在exampleEndpoint的參數總是空。 我正在使用Spring Boot 1.4 Spring 4.3.2

我更改了名稱並刪除了所有公司的內容,但除此之外它是這樣的,它的工作原理是它碰到端點,它只是請求不通過。

回答

1

您需要RequestBody註釋的說法在你的方法exampleEndpoint像這樣:

public String exampleEndpoint (@RequestBody String in) { 
     return in; 
    } 
+0

謝謝,僅此而已。 – Peter