Spring Boot 单元测试覆盖 Mybatis-Plus Lambda 链式调用
Mybatis-Plus 单元测试 Spring Boot About 2,146 wordsLambdaQuery
业务代码
@Service
public class MyService {
@Resource
MyLambdaService myLambdaService;
public void doQuery() {
myLambdaService.lambdaQuery()
.ge(xxx)
.and(xxx)
.last(xxx)
.list()
.forEach(entity -> {
// xxx
})
}
}
单元测试
class MyUnitTest {
@InjectMocks
MyService myService;
@BeforeEach
void setUp() {
MockitoAnnotations.openMocks(this);
}
@Test
void testMyMethod() {
LambdaQueryChainWrapper<MyEntity> mock = mock(LambdaQueryChainWrapper.class);
when(myService.lambdaQuery()).thenReturn(mock);
LambdaQueryChainWrapper<MyEntity> ge = mock(LambdaQueryChainWrapper.class);
when(mock.ge(any(), any())).thenReturn(ge);
LambdaQueryChainWrapper<MyEntity> and = mock(LambdaQueryChainWrapper.class);
when(ge.and(any())).thenReturn(and);
LambdaQueryChainWrapper<MyEntity> last = mock(LambdaQueryChainWrapper.class);
when(and.last(any())).thenReturn(last);
MyEntity e1 = new MyEntity();
when(last.list()).thenReturn(List.of(e1));
myService.doQuery();
verify(xxx);
}
}
LambdaUpdate
业务代码
@Service
public class MyService {
@Resource
MyLambdaService myLambdaService;
public void doUpdate() {
myLambdaService.lambdaUpdate()
.set(xxx)
.set(xxx)
.eq(xxx)
.update();
}
}
单元测试
class MyUnitTest {
@InjectMocks
MyService myService;
@BeforeEach
void setUp() {
MockitoAnnotations.openMocks(this);
}
@Test
void testMyMethod() {
LambdaUpdateChainWrapper<MyEntity> mock = mock(LambdaUpdateChainWrapper.class);
when(measurementService.lambdaUpdate()).thenReturn(mock);
when(measurementService.lambdaUpdate().set(any(), any())).thenReturn(mock);
when(measurementService.lambdaUpdate().eq(any(), any())).thenReturn(mock);
when(measurementService.lambdaUpdate().update()).thenReturn(true);
myService.doUpdate();
verify(xxx);
}
}
Views: 46 · Posted: 2025-02-28
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓

Loading...