title: How to integrate Spring Boot, Cucumber and Mockito?
body: <p>There are ways online to integrate Cucumber with Spring Boot. But I cannot find how to do so with Mockito also. If I use the Cucumber runner and annotate the steps file with ContextConfiguration and SpringBootTest, the container injects the Autowired dependencies and its all fine. The problem is that dependencies annotated with Mock, MockBean and InjectMocks dont work. Anyone knows why it doesnt work and how to make it work?</p>
  
  <p>EDIT: It is possible to instantiate the bean with mock(Bean.class), instead of using the Mock annotation. But what about features like MockBean and InjectMocks?</p>
  
  <p>Runner</p>
  
  <pre><code>@RunWith(Cucumber.class)
  @CucumberOptions(plugin = {"pretty", "html:build/cucumber_report/"},
                   features = "classpath:cucumber/",
                   glue = {"com.whatever"},
                   monochrome = true,
                   dryRun = false)
  public class CucumberTest {
  
  }
  </code></pre>
  
  <p>Steps</p>
  
  <pre><code>@ContextConfiguration
  @SpringBootTest
  public class CucumberSteps
  {
  
      @Autowired
      private Bean bean;
  
      @InjectMocks //doesnt work
      private AnotherBean anotherBean;
  
      @MockBean //doesnt work with @Mock also
      MockedBean mockedBean;
  
  
      @Given("^Statement$")
      public void statement() throws Throwable {
          MockitoAnnotations.initMocks(this); //doesnt work with or without this line
          Mockito.when(mockedBean.findByField("value"))
                 .thenReturn(Arrays.asList());
      }
  
      //Given-When-Then   
  }
  </code></pre>