Piszę testy, aby sprawdzić, czy mogę utworzyć ogólny formularz do naszego interfejsu API.Testowanie postów w formularzu za pośrednictwem MockMVC
Dodałem także trochę debugowania, ale zauważyłem, że dane publikowane przez rzeczywisty formularz; (Listonosz/angularjs lub w/e) różni się od robienia testu mockMVC jak:
MvcResult response = mockMvc
.perform(post("/some/super/secret/url") //
.param("someparam1", "somevalue") //
.param("someparam2", "somevalue") //
.contentType(MediaType.APPLICATION_FORM_URLENCODED) //
.accept(MediaType.APPLICATION_JSON)) //
.andExpect(status().isOk()) //
.andReturn();
config jest dokładnie taka sama, jak w konfiguracji z systemem produkcji, i takie. Jednak Kiedy mój przechwytujących rejestruje zawartość, prawdziwy test (nie mockMVC) treść jest sformatowana jak „someparam1 = someValue & etc = bis”
Kiedy wydrukować zawartość mockMVC I rzeczywiście wydają się mieć żadnej zawartości, ale istnieją Params w żądaniu, zakładam, że są one dodane jak parametry GET.
Ktoś wie, jak to właściwie przetestować? Natknąłem się na ten problem, ponieważ wydaje się, że nasze posty na formularzu nie są analizowane przez Spring, mimo że do kontekstu serwletu dodano FormHttpMessageConverter.
mogę podać więcej szczegółów, jak config, prawdziwe dane wysłaniu do serwera i dość szczegółowo dziennika aby uczynić go bardziej jasne? O tym, co robisz, wygląda na to, że masz rację, param testowy to taki sam format wyświetlanych danych postów. Sprawdź też, czy myślisz o bezpieczeństwie wiosennym. Być może będziesz musiał sfałszować zabezpieczenia wiosenne lub wykonać logowanie przed wykonaniem kolejnych kroków. –
Nie używamy niczego takiego, dowiedziałem się, że mój przykład jest w rzeczywistości błędny. w tym przypadku niektóreParam1 i niektóreParam2 będą parametrem zapytania, (W url). Chcę użyć parametrów formularza, a więc URLENCODED. To jednak wydaje się być dostępne tylko poprzez model lub mapę wartości. Będziemy więc potrzebować obejścia (zostało to zmigrowane, aby było w pełni wiosennym mvc, używanym jako @FormParam, który nie jest wiosną). –
Och, również opublikowane dane, były jak w moim przykładzie poniżej części Mvc, publikuje ciąg zawartości zakończony znakiem & i = –