Posts

Showing posts with the label Testcontainers

Spring Boot - Testing a Data MongoDB application with Testcontainers and @DataMongoTest

Image
In this section, we will learn how to test Repository layer components with @DataMongoTest and Testcontainers in Spring Boot Data MongoDB application that uses MongoDB as database. 1.  What we will build? We will create a basic Data MongoDB Spring Boot application that uses MongoDB as database. We will create Repository layer for this application. Finally we will do a testing with help of Testcontainers and @DataMongoTest to verify our system is working as expected. 2. Testcontainers Testcontainers is an open source testing library that allows us to run docker containers directly in our spring boot application in order to facilitate integration tests with real dependencies.  It can provide instances of common databases(here MongoDB),  message brokers, Selenium web browsers, or anything else that can run in a Docker container. 3.  @ DataMongoTest Instead of bootstrapping the entire application context for every test,  @DataMongoTest  allows us to initialize the Spring application contex

Spring Boot MongoDB - Integration Testing with Testcontainers

Image
In this section, we will learn how to test Spring Boot, Spring Data MongoDB, and MongoDB based application using Testcontainers and @SpringBootTest. 1.  What we will build? We will create a web application with Spring Boot, Spring Data MongoDB and MongoDB. The application will consist of three layer,  that is a Controller, a Service, and a Repository layer.  Controller layer takes care of mapping request data to the defined request handler method. Once response body is generated from the handler method, it converts it to JSON response. Service layer  facilitates communication between the controller and the repository layer. We are using Spring Data MongoDB for managing database operations, so we can use Spring Data MongoRepository interface. **Finally we will do a integration testing with help of Testcontainers to verify our system is working as expected. 2. Testcontainers Testcontainers is an open source testing library that allows us to run docker containers directly in our spring bo