Spring Testen mit mvc.perform(get(...

baxbear

Mitglied
Hallo liebe Community,
das Internet ist voll mit Beispielen die die get oder post Methode verwenden aber keines dieser Beispiele erklärt wo diese Methode herkommt (ich vermute, dass sie statisch ist und von irgendwoher importiert wird)

z.B.:

Java:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
@WebAppConfiguration
public class UserControllerTest {
    @Autowired
    private WebApplicationContext context;

    private MockMvc mvc;

    @Before
    public void setup() {
        mvc = MockMvcBuilders
                .webAppContextSetup(context)
                .apply(springSecurity())
                .build();
    }

    @Before
    public void setUp() throws Exception {
    }

    @After
    public void tearDown() throws Exception {
    }

    @Test
    @WithMockUser
    public void currentUser() {
        mvc.perform(get("/me").with(user("user")));
    }
}

(https://docs.spring.io/spring-security/site/docs/4.0.x/reference/htmlsingle/#test-mockmvc)

Ich würde mich sehr freuen, wenn jemand mir erklären kann, wie ich zu meiner get - Methode komme, welche ein Objekt zurückliefert welches über eine with Methode verfügt wobei alle Methoden den angedachten Zweck erfüllen.
 
K

kneitzel

Gast
Hi,

Ja, deine Vermutung ist richtig. Die get Funktion kommt von MockMvcRequestBuilder.

Das ist eine Klasse, die aus Sicht vom Spring Team bei Eclipse als Java Editor Favorit eingetragen werden soll, damit der Java Editor bei diesen Funktionen das automatisch einbindet.

Über den Sinn / Unsinn von sowas kann man geteilter Meinung sein, ich selbst mag es nicht. Und in eine solchen Dokumentation finde ich es recht fatal...

Also was da in der Doku nicht (direkt) ersichtlich ist, ist eben das fehlende
Java:
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;

Viele Grüße,

Konrad
 

mrBrown

Super-Moderator
Mitarbeiter
Zuletzt bearbeitet:

Ähnliche Java Themen

Neue Themen


Oben