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: 1,324 · Posted: 2025-02-28
            
            ————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
 
        Loading...