car*_*081 6 debugging spring-boot spring-boot-test
我是Spring Boot的新手,我真的很喜欢它,尤其是在消除样板代码时。我创建了一个测试类来测试我的@RestController:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = NewBusinessRevitalizationApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@TestPropertySource(properties = {"management.port=0"})
public class NBRControllerTest extends TestCase {
@LocalServerPort
private int port;
@Value("${local.management.port}")
private int mgt;
@Autowired
private TestRestTemplate testRestTemplate;
@Test
public void getApplicationByAgencyIdAndStatusTest() {
String uri = "http://localhost:" + this.port + "/nbr-services/applications/{status}?agencyIds=123456,56765,678576";
Map<String, String> vars = new HashMap<String, String>();
vars.put("status", "SAVED");
ResponseEntity<String> response = testRestTemplate.getForEntity(uri, String.class, vars);
assertEquals(HttpStatus.OK, response.getStatusCode());
}
}
Run Code Online (Sandbox Code Playgroud)
如果以调试模式运行它,则只能调试Test类,而不能调试@RestController类:
@RestController
@RequestMapping("/nbr-services")
public class NBRController {
@Autowired
private NBRServices nbrServices;
private static Logger logger = LoggerFactory.getLogger(NBRController.class);
@RequestMapping(value = "/configuration/environment/{environment}", method = RequestMethod.GET)
@ResponseBody
public String getConfiguration(@PathVariable("environment") String environment) throws RemoteException {
logger.debug("environment={}", environment);
String result = nbrServices.getConfiguration(environment);
return result;
}
Run Code Online (Sandbox Code Playgroud)
我试图设置Tomcat调试端口,但没有运气。调试@RestController的唯一方法是在调试模式下运行它,然后从浏览器调用RestAPI,但我想使用单元测试。提前致谢。
您可能正在与您认为的端口不同的端口上运行。
SpringBootTest注释是控制测试端口的,例如
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3778 次 |
最近记录: |