codice di esempio @tunguski funziona, ma vale la pena di capire come funzionano le cose. Questo è solo un modo per sistemare le cose.
@EnableWebMvc
equivale a seguito in un file di configurazione di primavera
<mvc:annotation-driven />
In sostanza cosa c'è da lavorare è necessario inizializzare Spring MVC e caricare tutti i controller ei riferimenti di fagioli. Quindi, a seguito potrebbe essere una configurazione valida, nonché un supplente
seguito è come si farebbe impostare la classe di test
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath: "classpath:test-context.xml" })
@WebAppConfiguration
public class BaseTest {
@Autowired
WebApplicationContext wac;
private MockMvc mockMvc;
@Before
public void setUp() {
mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
}
}
E seguendo potrebbe essere la configurazione di primavera per il test
<mvc:annotation-driven />
<context:component-scan base-package="com.base.package.controllers" />
Apprezzare un aggiornamento su questo. Sto affrontando un problema simile in cui il metodo annotato @ExceptionHandler (Exception.class) in una classe @ControllerAdvice non viene chiamato tramite unit test - webAppContextSetup (wac) .build(). Il metodo annotato ExceptionHandler viene chiamato quando distribuito come webapp. – kctang