MyBatis-Plus 如何单元测试

最近项目中使用了 MyBatis-Plus,点击看官方文档

使用一个新的框架,首先是验证框架的使用。
使用 MyBatis-Plus,首先就验证一下能否成功操作(CRUD)数据库。

如何通过不用启动项目,然后可以测试 MyBatis-Plus 查询数据。

所以首要想到的是单元测试 @Test


第一步

通过 MyBatis-Plus 的代码生成工具生成数据库表对应的文件

MyBatis-Plus 对于单表操作,有一个内置的 mapper 接口方法,service 的接口我暂时没使用并没验证过。

使用过 MyBatis 的应该都知道,在 service 层使用 mapper.java 来操作数据库,并且 mapper.xml 里面是有对应的查询入口。

-- service
public class EntityServiceImp{
	@Autowired
	private EntityMapper mapper;
	public void test(){
		// 服务层调用 mapper.java 中的 selectEntityList 方法
		mapper.selectEntityList(map);
	}
}

-- mapper.java
public interface EntityMapper {
	// mapper.xml 有一个id='selectEntityList' 的 select 块
	List<entity> selectEntityList(Map<String, Object> map);
}

--mapper.xml
<mapper namespace="com.example.mapper.EntityMapper" >
	<resultMap id="BaseResultMap" type="com.example.pojo.Entity" ></resultMap >
	
	<select id="selectEntityList" resultMap="BaseResultMap" parameterType="map" >
		select * from entity where .....
	</select>
<mapper>

然而使用 MyBatis-Plus,对于单表操作,不需要像 MyBatis 这么麻烦,可通过调用内置一些单表的接口方法。

第二步

在 src/test/java 下面创建测试用例

@RunWith(SpringRunner.class)
@SpringBootTest
public class DbTest {
	
	@Autowired
	private LogYjxxMapper logYjxxMapper;

	@Test
	public void test2() {
		// selectList 是内置的方法,logYjxxMapper中并不需要自己定义 selectList 这么一个方法
		// selectList括号里的参数是条件构造器,可参看官方文档
		List<LogYjxx> yjxxLoglist = logYjxxMapper.selectList(new QueryWrapper<LogYjxx>()
				.eq("lx", YjxxConstant.LX_SF)
				.and(i -> i.in("zt", 2,3).or().isNull("zt"))
				);
		for (LogYjxx logYjxx : yjxxLoglist) {
			System.out.println(logYjxx);
		}
	}
	
}

重点: 类上方的两个注解(@RunWith(SpringRunner.class) @SpringBootTest)很重要,不要漏了。

好了,通过以上两步,就可以很顺利的验证自己的 sql 了。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis-Plus是一个优秀的持久层框架,它在MyBatis的基础上进行了扩展和增强。它提供了很多便捷的功能和特性,其中包括对单元测试的支持。 在MyBatis-Plus中进行单元测试可以使用JUnit框架来实现。下面是一个简单的示例,介绍了如何使用MyBatis-Plus进行单元测试: 1. 首先,确保你已经引入了MyBatis-Plus的依赖,并且配置好了数据库连接信息。 2. 创建一个测试类,并在类上添加`@RunWith(SpringRunner.class)`注解,以便使用Spring的测试环境。 3. 在测试类中注入需要测试的Mapper接口,可以使用`@Autowired`注解来实现自动注入。 4. 在测试方法上添加`@Test`注解,表示这是一个测试方法。 5. 在测试方法中编写测试逻辑,可以调用Mapper接口中的方法进行数据库操作。 6. 使用断言来验证测试结果是否符合预期。 下面是一个示例代码: ```java @RunWith(SpringRunner.class) @SpringBootTest public class UserMapperTest { @Autowired private UserMapper userMapper; @Test public void testInsert() { User user = new User(); user.setName("test"); user.setAge(20); int result = userMapper.insert(user); Assert.assertEquals(1, result); } @Test public void testSelectById() { User user = userMapper.selectById(1); Assert.assertNotNull(user); } // 其他测试方法... } ``` 在上面的示例中,我们使用了`@RunWith(SpringRunner.class)`注解来启用Spring的测试环境,使用了`@SpringBootTest`注解来指定测试时使用的配置文件。 然后,我们通过`@Autowired`注解将需要测试的Mapper接口注入到测试类中。在测试方法中,我们可以调用Mapper接口中的方法进行数据库操作,并使用断言来验证测试结果是否符合预期。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值