컨트롤러 포스트 방법으로 '통과'모델 : 이제 난봄 시험 : 어떻게 봄 부팅에서 일하고 있어요 및 다음과 같습니다 컨트롤러에 대한 통합 테스트를 작성하는 것을 시도하고있다
public String pagerequestSubmit(@ModelAttribute Pagerequest pagerequest, Model model) {
...
}
을 이 같은이 컨트롤러에 대한 통합 테스트 작성하려고 :
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@ContextConfiguration(classes=PageAnalyzerInSpringApplication.class)
public class PagerequestControllerIntegrationTest {
@Autowired
PagerequestController pagerequestController;
@Test
public void testHappyPath() {
Pagerequest mockPageRequest = new Pagerequest();
mockPageRequest.setUrl("https://www.somedomain.com/");
....
String outcome = pagerequestController.pagerequestSubmit(mockPageRequest);
assertThat(outcome, is(equalTo("result")));
}
내가 어떤 문제를 '모의 pagerequest을'일을하고 포스트 방식으로 전달을 필요는 없습니다, 그래서 멀리 얻었으나, 위의 테스트 내가 얻을 수 있기 때문에 작동하지 않습니다.
내가 이와 난 유형 모델의 인수를 전달 아니에요 때문에 의미가
"유형의 PagerequestController의 방법 pagerequestSubmit (Pagerequest, 모델) 인수 (Pagerequest) 적용 할 수 없습니다" 그것을하는 방법에 완전히 붙어 있습니다.
작동하지 않는 Model을 인스턴스화하려고 시도했습니다. 또한 작동하지 않는 가짜 모델을 만들고 적어도 실행중인 테스트를 얻는 null 인 Model 변수를 전달합니다. 컨트롤러에서 모델이 사용 중일 때 널 포인터 예외를 던집니다.
해결 방법에 대한 아이디어가 있으십니까?
미리 감사드립니다.
당신이 봄 MV의 C 테스트를 참조하십시오 사용할 수있는 코드에 붙여 넣습니다 : HTTPS : //stackoverflow.com/questions/40120991/spring-mvc-how-to- unit-test-models-attribute-from-a-controller-method-that-ret – Pradeep
고마워요 @Pradeep - 모의 주석에서 트릭을했습니다! –