2014-09-27 2 views
6

hey Leute Ich versuche, meinen ersten Controller zu testen, folgte ein paar Beispiele im Internet, ist aber in den Methoden get() und status() zu kompilieren.Ich muss die Methoden get() und status() erstellen, um einen Testcontroller mit mockmvc zu erstellen?

import org.junit.Before; 
import org.junit.Test; 
import org.junit.runner.RunWith; 
import org.mockito.Mock; 
import org.mockito.MockitoAnnotations; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.test.context.ContextConfiguration; 
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; 
import org.springframework.test.context.web.WebAppConfiguration; 
import org.springframework.test.web.servlet.MockMvc; 
import org.springframework.test.web.servlet.RequestBuilder; 
import org.springframework.test.web.servlet.setup.MockMvcBuilders; 

import br.com.boot.application.Application; 
import br.com.boot.controller.ClienteController; 

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(classes = Application.class) 
@WebAppConfiguration 
public class ClienteControllerTest { 

    @Autowired 
    private ClienteController controller; 

    @Mock 
    private MockMvc mock; 

    @Before 
    public void setUp() { 
     MockitoAnnotations.initMocks(this); 
     this.mock = MockMvcBuilders.standaloneSetup(controller).build(); 
    } 

    @Test 
    public void testandoClienteController() throws Exception{ 
     this.mock.perform(get("/novo").andExpect(status().isOk())); 
    } 
} 

My Class-Controller

@RestController 
@RequestMapping("/cliente") 
public class ClienteController { 

    @Autowired 
    private ClienteAplicacaoService service; 


    @RequestMapping(value = "/novo", method = RequestMethod.GET) 
    @ResponseBody 
    public ClienteData novo(@RequestBody NovoClienteComando comando){ 
     String clienteId = service.novoCliente(comando); 
     return service.obterCliente(clienteId); 
    } 

    @RequestMapping("/obter") 
    @ResponseBody 
    public ClienteData obter(@RequestParam("clienteId") String clienteId){ 
     return service.obterCliente(clienteId); 
    } 

} 

Error: 

Mehrere Marker an dieser Linie - Die Methode get (String) für den Typ undefined ClienteControllerTest - Die Methode Status() für den Typ nicht definiert ist ClienteControllerTest

+1

Nun, der Fehler ist richtig. Nicht sicher, ob Eclipse Quick-Fix schlau genug ist, aber Sie sollten ein paar statische Importe für die Klasse 'MockMvcRequestBuilders' hinzufügen, die diese Methoden enthält. –

+0

danke M.Deinum ^^ –

Antwort

23

Versuchen Sie, folgende Importe hinzuzufügen:

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; 
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; 
+0

@Tiago Costa, wenn diese Antwort Ihre Frage lösen, würden Sie es akzeptieren? Übrigens denke ich, dass es so ist. – 000

+1

Richtige Antwort ... – sura2k

Verwandte Themen