MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm cách nào để thực hiện các bài kiểm tra junit sử dụng mongoDB được nhúng trong ứng dụng springboot?

Một giải pháp thay thế sẽ là chạy toàn bộ ứng dụng khởi động mùa xuân trong thử nghiệm. Trong trường hợp này, ứng dụng khởi động mùa xuân của bạn sẽ được tự động phát hiện và mongoDB được nhúng sẽ được tải xuống và khởi động bởi Spring Boot

@RunWith(SpringRunner.class)
@SpringBootTest
public class YourSpringBootApplicationTests {

08:12:14.676 INFO EmbeddedMongo:42 - lưu ý:noprealloc có thể ảnh hưởng đến hiệu suất trong nhiều ứng dụng 08:12:14.694 INFO EmbeddedMongo:42 -2017-12-31T08:12:14.693 + 0200 I CONTROL [initandlisten] MongoDBstarting:pid =2246 port =52299 08:12:22.005 Kết nối thông tin:71 -Kết nối đã mở [connectionId {localValue:2, serverValue:2}] tolocalhost:52299

Trong trường hợp ví dụ của bạn, bạn có thể sửa đổi mã để bắt đầu nhúng Mongo trên cổng khác:

  1. thêm tệp test / resoures / test.properties để ghi đè các thuộc tính từ application.properties

    mongo.db.name=person_testDB
    mongo.db.url=localhost
    mongo.db.port=12345
    
  2. sửa đổi MongoDBConfig:thêm trường MONGO_DB_PORT

    @EnableMongoRepositories
    public class MongoDBConfig {
        @Value("${mongo.db.url}")
        private String MONGO_DB_URL;
    
        @Value(("${mongo.db.port:27017}"))
        private int MONGO_DB_PORT;
    
        @Value("${mongo.db.name}")
        private String MONGO_DB_NAME;
    
        @Bean
        public MongoTemplate mongoTemplate() {
            MongoClient mongoClient = new MongoClient(MONGO_DB_URL, MONGO_DB_PORT);
            MongoTemplate mongoTemplate = new MongoTemplate(mongoClient, MONGO_DB_NAME);
            return mongoTemplate;
        }
    }
    
  3. sửa đổi lớp kiểm tra:loại bỏ chú thích @DataMongoTest. Chú thích này buộc bắt đầu phiên bản mongoDB được nhúng

    static MongodExecutable mongodExecutable;
    
    @BeforeClass
    public static void setup() throws Exception {
        MongodStarter starter = MongodStarter.getDefaultInstance();
        String bindIp = "localhost";
        int port = 12345;
        IMongodConfig mongodConfig = new MongodConfigBuilder()
                .version(Version.Main.PRODUCTION)
                .net(new Net(bindIp, port, Network.localhostIsIPv6()))
                .build();
        mongodExecutable = null;
        try {
            mongodExecutable = starter.prepare(mongodConfig);
            mongodExecutable.start();
        } catch (Exception e){
            // log exception here
            if (mongodExecutable != null)
                mongodExecutable.stop();
        }
    }
    
    @AfterClass
    public static void teardown() throws Exception {
        if (mongodExecutable != null)
            mongodExecutable.stop();
    }
    

Một cách khác là sử dụng MongoRepository và init đã nhúng Mongo như một phần của lớp kiểm tra @Configuration:nó được nêu ở đây:Làm cách nào để bạn định cấu hình Embedded MongDB để kiểm tra tích hợp trong ứng dụng Spring Boot?




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Lập trình cơ sở dữ liệu Python với MongoDB cho người mới bắt đầu

  2. MongoDB 4.2 Quản lý &Giám sát mà không cần Lockin của nhà cung cấp

  3. 5 cách để có được tháng từ một ngày trong MongoDB

  4. Có cách nào để khôi phục các tài liệu đã xóa gần đây trong MongoDB không?

  5. SQL RPAD ()