Java Spring
Spring 中进行Junit测试时,PageHelper未被消耗
如果mapper
被mock掉,会导致Mapper
之前的PageHelper
的线程存储未被消耗。导致后续出现错误。
// 源码
// .....
void q() {
PageHelper.startPage(1, 1);
someMapper.query();
}
// .....
// 问题单测
@Mock
private SomeMapper someMapper;
@Test
void testQ() {
q(); // 错误 由于mapper被mock掉,PageHelper又被正常调用,此处会导致PageHelper留存在线程里的数据未被消耗
}
// 正确单测
@Mock
private SomeMapper someMapper;
@Test
void testQ() {
q();
PageHelper.clearPage(); // 手动消耗掉即可
}
标签:md,java,void,private,PageHelper,.....,someMapper,Test,日常
From: https://www.cnblogs.com/nsfoxer/p/17613301.html