2017-07-15 5 views
2

Ich habe eine Federauflage mvc Controller, der die URL "/ öffentliche/Rest/Fahrzeug/get" hat. In meiner Sicherheitskonfiguration habe ich definiert, dass alle Anfragen für/public/rest keine Authentifizierung erfordern sollten.SpringBoot @WebMvcTest Sicherheitsproblem

Diese Konfiguration funktioniert einwandfrei, wenn ich meine Anwendung starte und die Anfrage mit einem Browser oder einer anderen Methode absende. Jetzt habe ich eine Testklasse haben, die wie folgt aussieht,

@RunWith(SpringRunner.class) 
@WebMvcTest(VehicleController.class) 
public class VehicleControllerTest { 

    @Autowired 
    private MockMvc mockMvc; 

    @MockBean 
    private VehicleService vehicleService; 


    @Test 
    public void getVehicle() throws Exception { 
     given(this.vehicleService.get(0)). 
       willReturn(new VehicleEquipmentDTO()); 
     this.mockMvc.perform(get("/public/rest/vehicle/get").param("id","0")) 
       .andDo(print()) 
       .andExpect(status().isOk());//.andExpect(content().string("Honda Civic")); 
    }} 

Nun, wenn ich diesen Test ausführen, heißt es

java.lang.AssertionError: Status 
Expected :200 
Actual :401 

Als ich die Anfrage-Antwort drucken, sehe ich es beschwert sich, weil der Sicherheit. "Fehlermeldung = Vollständige Authentifizierung ist erforderlich, um auf diese Ressource zuzugreifen" Irgendwelche Ideen, warum es nicht mit der Sicherheitskonfiguration funktioniert, die ich habe, und was ist die Arbeit um es zu zwingen, die richtigen Konfigurationen zu verwenden? Vielen Dank im Voraus

Antwort

3

Endlich den Grund gefunden. Da es sich bei WebMvcTest nur um Tests in Schnitten handelt, sind die Sicherheitskonfigurationen nicht erforderlich. Die Arbeit ist es, es explizit zu importieren, wie

Verwandte Themen