Rozwijam się po podstawowych przykładach Spring Boot, dodając zależność od repozytorium "autowired" do kontrolera. Chciałbym zmodyfikować testy jednostkowe, aby wstrzyknąć próbkę Mockito dla tej zależności, ale nie jestem pewien jak.Jak kpić z autoczyszczonych zależności w testach Spring Boot MockMvc Unit?
Spodziewałem się, że mogę zrobić coś takiego:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MockServletContext.class)
@WebAppConfiguration
public class ExampleControllerTest {
private MockMvc mvc;
@InjectMocks
ExampleController exampleController;
@Mock
ExampleRepository mockExampleRepository;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
mvc = MockMvcBuilders.standaloneSetup(new ExampleController()).build();
}
@Test
public void getExamples_initially_shouldReturnEmptyList() throws Exception {
mvc.perform(MockMvcRequestBuilders.get("/example").accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().string(equalTo("[]")));
}
}
ale nie wstrzyknąć makiety do MockMvc
. Czy ktoś może wyjaśnić, jak to zrobić z zależnościami @Autowired
, a nie z argumentami konstruktora?
utworzyć konfigurację, która zawiera makiety swoich fasoli. Następnie w konfiguracji zresetuj makiety. (W Spring Boot 1.4 będziesz mógł dodać adnotację '@ MockBean', która to ułatwia). –