栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Spring Boot应用程序中配置Embedded MongDB以进行集成测试?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Spring Boot应用程序中配置Embedded MongDB以进行集成测试?

如果由于任何原因无法使用它,请继续阅读。


测试类别:

    @RunWith(SpringJUnit4ClassRunner.class)    @SpringApplicationConfiguration(classes = {        Application.class,         TestMongoConfig.class // <--- Don't forget THIS    })    public class GameRepositoryTest {        @Autowired        private GameRepository gameRepository;        @Test        public void shouldCreateGame() { Game game = new Game(null, "Far Cry 3"); Game gameCreated = gameRepository.save(game); assertEquals(gameCreated.getGameId(), gameCreated.getGameId()); assertEquals(game.getName(), gameCreated.getName());        }    }

简单的MongoDB存储库:

public interface GameRepository extends MongoRepository<Game, String>     {    Game findByName(String name);}

MongoDB测试配置:

import com.mongodb.Mongo;import com.mongodb.MongoClientOptions;import de.flapdoodle.embed.mongo.MongodExecutable;import de.flapdoodle.embed.mongo.MongodProcess;import de.flapdoodle.embed.mongo.MongodStarter;import de.flapdoodle.embed.mongo.config.IMongodConfig;import de.flapdoodle.embed.mongo.config.MongodConfigBuilder;import de.flapdoodle.embed.mongo.config.Net;import de.flapdoodle.embed.mongo.distribution.Version;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.autoconfigure.mongo.MongoProperties;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import java.io.IOException;@Configurationpublic class TestMongoConfig {    @Autowired    private MongoProperties properties;    @Autowired(required = false)    private MongoClientOptions options;    @Bean(destroyMethod = "close")    public Mongo mongo(MongodProcess mongodProcess) throws IOException {        Net net = mongodProcess.getConfig().net();        properties.setHost(net.getServerAddress().getHostName());        properties.setPort(net.getPort());        return properties.createMongoClient(this.options);    }    @Bean(destroyMethod = "stop")    public MongodProcess mongodProcess(MongodExecutable mongodExecutable) throws IOException {        return mongodExecutable.start();    }    @Bean(destroyMethod = "stop")    public MongodExecutable mongodExecutable(MongodStarter mongodStarter, IMongodConfig iMongodConfig) throws IOException {        return mongodStarter.prepare(iMongodConfig);    }    @Bean    public IMongodConfig mongodConfig() throws IOException {        return new MongodConfigBuilder().version(Version.Main.PRODUCTION).build();    }    @Bean    public MongodStarter mongodStarter() {        return MongodStarter.getDefaultInstance();    }}

pom.xml

        <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId>        </dependency>        <dependency> <groupId>de.flapdoodle.embed</groupId> <artifactId>de.flapdoodle.embed.mongo</artifactId> <version>1.48.0</version> <scope>test</scope>        </dependency>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/378307.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号