Я пытаюсь протестировать простое приложение SpringBoot с Embedded Mongo, но мой репозиторий устанавливается на null
. Кто-нибудь может определить, что мне не хватает?
// Контроллер:
@RestController
public class MyController {
@Autowired
private MyRepository myRepo;
public MyController() {
}
@RequestMapping(method= RequestMethod.GET, value="/test")
public Iterable<Test> findAll() {
return myRepo.findAll();
}
}
// Пустой интерфейс репозитория
public interface MyRepository extends CrudRepository< Test, String> {
}
// Приложение Spring Boot
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
// Интеграционный тест
@RunWith(SpringRunner.class)
@SpringBootTest
public class MyIntegrationTest {
MockMvc mockMvc;
MyController controller;
@Autowired
MyRepository myRepo;
@Before
public void setup() {
controller = new MyController();
this.mockMvc = MockMvcBuilders.standaloneSetup(controller).build();
}
@Test
public void testing() throws Exception {
MockHttpServletRequestBuilder request = get("/test").contentType(APPLICATION_JSON);
HttpServletResponse response = mockMvc.perform(request).andReturn().getResponse();
assertThat(response.getStatus()).isEqualTo(HttpStatus.OK.value());
}
// Зависимости в файле Gradle:
dependencies {
compile('org.springframework.boot:spring-boot-starter-data-mongodb')
compile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
testCompile "de.flapdoodle.embed:de.flapdoodle.embed.mongo:1.50.5"
testCompile group: 'cz.jirutka.spring', name: 'embedmongo-spring', version: '1.3.1'
}
myRepo.findAll()
- это null
- как это можно установить? Это будет работать из коробки со встроенным монго?