深入实践Spring Boot2.3.4 MongoDB测试

2.3.4 MongoDB测试

如果还没有安装MongoDB服务器,可以参照附录B的方法安装并启动一个MongoDB服务器。然后,使用如代码清单2-18所示的配置方法配置连接服务器的一些参数,该配置假定你的MongoDB服务器安装在本地,并使用默认的数据库端口:27017。

代码清单2-18 MongoDB数据库配置

# MongoDB

mongo.host=localhost

mongo.name=test

mongo.port=27017

这样就可以编写一个JUint测试例子来测试UserRepository接口的使用情况,如代码清单2-19所示。测试例子首先使用用户文档类创建一个用户对象实例,然后使用资源库接口调用save方法将用户对象保存到数据库中,最后使用f?indAll方法查询所有用户的列表,并使用一个循环输出用户的简要信息。

代码清单2-19 MongoDB测试

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(classes = {TestDataSourceConfig.class})

@FixMethodOrder

public class RepositoryTests {

    private static Logger logger = LoggerFactory.getLogger(RepositoryTests.class);

 

    @SuppressWarnings("SpringJavaAutowiringInspection") @Autowired

    UserRepository userRepository;

 

    @Before

    public void setup(){

        Set<String> roles = new HashSet<>();

        roles.add("manage");

        User user = new User("1","user","12345678","name","email@com.cn",new Date(),

roles);

        userRepository.save(user);

    }

 

    @Test

    public void findAll(){

        List<User> users = userRepository.findAll();

        Assert.notNull(users);

        for(User user : users){

            logger.info("===user=== userid:{}, username:{}, pass:{}, registra

tionDate:{}",

                user.getUserId(), user.getName(), user.getPassword(), user.

getRegistrationDate());

        }

    }

}

现在可以在IDEA的Run/Debug Conf?iguration配置中增加一个JUint测试项目,模块选择mongodb,工作目录选择模块所在的工程根目录,类选择上面编写的测试例子,即dbdemo.mongo.test.RepositoryTests,并将配置保存为mongotest。

使用Debug方式运行测试项目mongotest。如果通过测试,将输出查到的用户的简要信息,如下所示:

dbdemo.mongo.test.RepositoryTests - ===user=== userid:1, username:name, pass:12345678, registrationDate:Tue Jun 07 14:26:02 CST 2016

这时使用MongoDB数据库客户端输入下面的查询指令,也可以查到这条文档的详细信息,这是一条JSON结构的文本信息。

> db.user.find()

{ "_id" : "1", "_class" : "dbdemo.mongo.models.User", "username" : "user", "password" : "12345678", "name" : "name", "email" : "email@com.cn", "registrationDate" : ISODate("2016-04-13T06:27:02.423Z"), "roles" : [ "manage" ] }

2.4 使用Neo4j

有没有既具有传统关系型数据库的优点,又具备NoSQL数据库优势的一种数据库呢?Neo4j就是一种这样的数据库。Neo4j是一个高性能的NoSQL图数据库,并且具备完全事务特性。Neo4j将结构化数据存储在一张图上,图中每一个节点的属性表示数据的内容,每一条有向边表示数据的关系。Neo4j没有表结构的概念,它的数据用节点的属性来表示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值