SpringBoot+ES项目:2.集成单元测试 (hibernate访问数据库测试)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了SpringBoot+ES项目:2.集成单元测试 (hibernate访问数据库测试),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1859字,纯文字阅读大概需要3分钟。
内容图文
![SpringBoot+ES项目:2.集成单元测试 (hibernate访问数据库测试)](/upload/InfoBanner/zyjiaocheng/896/b20c5c57784c45de9c3b994dde483d83.jpg)
1. 首先建立User表
2. 建立User Entity类(Entity)
User.class
@Entity 指定当前类为实体类
@Table(name = “user”) 与数据库表名对应
@Id 标记为主键
@GeneratedValue(strategy = GenerationType.IDENTITY) 定义ID为主键,IDENTITY可以同时兼容H2和hibernate
@Column(name = “phone_number”) 标记与数据库中名称对应
JPA @Id 和 @GeneratedValue 注解详解
https://blog.csdn.net/coding1994/article/details/79597057
3. 建立JPA操作类(repository)
建立UserRepository 接口 继承 CrudRepository <表名,主键类型>
public interface UserRepository extends CrudRepository<User,Long>
SpringData中的CrudRepository接口
https://blog.csdn.net/strive_peter/article/details/76276758
4. 建立测试类
将主测试类无用方法删除,因为测试类的注解@RunWith(SpringRunner.class) @SpringBootTest都是这俩个,可以将这个类作为父类,其他类继承它
在测试类建立一个Entity包,建立一个UserRepositoryTest类继承ApplicationTest类,并实现对用户表数据的抽取。
从结果上看无错误出现,并且输出admin说明从数据库获取到了数据。那么整个从数据库中取数据的过程是如何实现的呢?
首先,测试类@Autowired注入了userRepository接口,userRepository继承了CrudRepository所以可以有findOne函数去寻找数据表中的数据。(疑问直接注入接口就可以实例化???)
那么数据表在后面<User,Long>定义好了User就是entity 的User类这个实体类用于接收从数据表中查询的数据。(JPAConfig类通过自动扫描entity文件与他们联系起来)
Assert.assertEquals(“admin”, user.getName());用于判断是否一致,不一致会报错
5. 设置不同配置文件
我们希望测试时使用测试环境,开发时使用开发环境
由此我们建立application.properties application-dev.properties application-test.properties application-online.properties 四个配置
并将application.properties 中加入spring.profiles.active=dev
将mysql相关配置移入application-dev.properties
在application-test.properties 中加入h2驱动,这样就可以在内存中使用内存数据库了
在测试函数前加入注解@ActiveProfiles(“test”)可以默认访问test配置文件
然后做单元测试依然成功
内容总结
以上是互联网集市为您收集整理的SpringBoot+ES项目:2.集成单元测试 (hibernate访问数据库测试)全部内容,希望文章能够帮你解决SpringBoot+ES项目:2.集成单元测试 (hibernate访问数据库测试)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。