我有一个控制器方法,我必须写一个junit测试
@RequestMapping(value = "/new", method = RequestMethod.GET)
public ModelAndView getNewView(Model model) {
EmployeeForm form = new EmployeeForm()
Client client = (Client) model.asMap().get("currentClient");
form.setClientId(client.getId());
model.addAttribute("employeeForm", form);
return new ModelAndView(CREATE_VIEW, model.asMap());
}
Run Code Online (Sandbox Code Playgroud)
使用spring mockMVC进行Junit测试
@Test
public void getNewView() throws Exception {
this.mockMvc.perform(get("/new")).andExpect(status().isOk()).andExpect(model().attributeExists("employeeForm")
.andExpect(view().name("/new"));
}
Run Code Online (Sandbox Code Playgroud)
我得到NullPointerException作为model.asMap().get("currentClient"); 在运行测试时返回null,如何使用spring mockmvc框架设置该值
我有一个要求,当失败时我需要进行休息调用,我必须重试 3 次,并且根据收到的状态代码我需要执行不同的操作,我找不到合适的 spring 集成 dsl 示例。如何配置错误处理程序并重试
@Bean
public IntegrationFlow performCreate() {
return IntegrationFlows.from("createFlow")
.handle(Http.outboundGateway("http://localhost:8080/create")
.httpMethod(HttpMethod.GET)
.expectedResponseType(String.class)
.requestFactory(simpleClientHttpRequestFactory())
.errorHandler(??)
)
.log(LoggingHandler.Level.DEBUG, "response", m -> m.getPayload())
.log(LoggingHandler.Level.DEBUG, "response", m -> m.getHeaders())
.get();
}
private SimpleClientHttpRequestFactory simpleClientHttpRequestFactory() {
SimpleClientHttpRequestFactory simpleClientHttpRequestFactory = new SimpleClientHttpRequestFactory();
simpleClientHttpRequestFactory.setReadTimeout(5000);
simpleClientHttpRequestFactory.setConnectTimeout(5000);
return simpleClientHttpRequestFactory;
}
Run Code Online (Sandbox Code Playgroud) 我有一个接受字符串输入的 Flow
@Bean
public IntegrationFlow myFlow() {
// @formatter:off
return IntegrationFlows.from("some.input.channel")
.handle(someService)
.get();
Run Code Online (Sandbox Code Playgroud)
我如何从我的集成测试中调用它,如何在“some.input.channel”上放置一个字符串消息