阅读下面文章之前 建议点击下方链接了解 MyBatis 的创建与使用
单元测试
- 单元测试 指对软件中的最小可测试单元进行检查和验证的过程
- 单元测试 由开发人员在编码阶段完成,通常用于检测被测代码的一个很小的、很明确的功能是否正确
- 如果测试结构符合我们的预期,称之为测试通过,否则就是测试未通过
优势
单元测试的使用
具体步骤
import com.example.demo.entity.User; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import static org.junit.jupiter.api.Assertions.*; @SpringBootTest class UserMapperTest { // 正因为该测试单元运行在 Spring Boot 下 // 所以我们可以使用依赖注入 userMapper Bean 对象 @Autowired private UserMapper userMapper; @Test void getUserById() { User user = userMapper.getUserById(1); System.out.println(user); } }
实现不污染数据库
- 当我们想要测试一些会对数据库进行 增删改 的 方法时,这必然会改动我们数据库中的数据
- 为了避免出现上述情况,我们可以在 测试方法上添加 @Transactional 注解
- 添加上该注解,在测试完成后会自动回滚事务,从而避免对数据库进行修改
import com.example.demo.entity.User; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; //添加 @Mapper 注解 代表该接口会伴随这 项目的启动而注入到容器中 @Mapper public interface UserMapper { // 根据 id 修改用户密码 Integer update(@Param("user_id") Integer id, @Param("new_password") String newPassword); }
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybati s.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.demo.mapper.UserMapper"> <update id="update"> update user set password = #{new_password} where id = #{user_id}; </update> </mapper>
- 注意 如果出现该报错,直接点击 OK 即可
- 因为我们之前 测试 getUserById 方法时已经创建过 UserMapperTest 类了
- 所以我们仅点击 OK,将该类更新即可
- 即在原 UserMapperTest 类中,更新添加上我们需要测试的 update 方法
@Test @Transactional void update() { int result = userMapper.update(1,"1234"); System.out.println("update 方法 :" + (result == 1 ? "成功" : "失败")); }
执行测试方法
- 测试方法执行成功
原文地址:https://blog.csdn.net/weixin_63888301/article/details/134629279
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_21632.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。