【发布时间】:2017-09-05 11:10:50
【问题描述】:
我正在为我的 Spring MVC 控制器编写测试。 我得到一个 org.Mockito.exception.verifications.NoInteractionWanted 异常,带有这个堆栈跟踪:
这里不需要交互: -> 在 com.test.TestInsertUtente.testInserimentoUtente(TestInsertUtente.java:124) 但发现了这种互动: -> 在 com.test.UtenteForm.insertUtente(UtenteForm.java:149)
为什么?
public class TestInsertUtente {
private MockMvc mockMvc;
@Mock
private UtenteService utenteService;
@InjectMocks
private UtenteForm utenteForm;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
when(utenteService.insertUtente(isA(Utente.class))).thenReturn(new Utente("utente.test","utente","test","utente@test.com","test",0));
this.mockMvc = MockMvcBuilders.standaloneSetup(utenteForm).build();
}
@Test
public void testInserimentoUtente() throws Exception {
mockMvc.perform(post("/all/utente/form/insert/${action}","resta")
.contentType(MediaType.APPLICATION_FORM_URLENCODED)
.param("utente", "utente.test")
.param("nome", "utente1")
.param("cognome", "test")
.param("email", "utente@test.com")
.param("password", "test")
.param("statoRecord", "0")
.sessionAttr("utente", new Utente())
).andExpect(status().isMovedTemporarily())
.andExpect(view().name("redirect:/web/all/utente/form/utente.test/modifica"))
.andExpect(redirectedUrl("/web/all/utente/form/utente.test/modifica?insert=true"))
.andExpect(model().size(2))
.andExpect(model().attribute("insert", equalTo(true)));
ArgumentCaptor<Utente> formObjectArgument = ArgumentCaptor.forClass(Utente.class);
verify(utenteService, times(1)).insertUtente(formObjectArgument.capture());
verifyNoMoreInteractions(utenteService);
}
}
【问题讨论】:
标签: spring testing junit controller mockito