BlessingCR’s Blog
BlessingCR’s Blog

单元测试-样例代码

  1. mock测试
package com.yunshang.module.portalweb.service.article;

import com.yunshang.framework.common.pojo.PageResult;
import com.yunshang.module.portalweb.controller.admin.article.vo.req.ArticlePageReqVO;
import com.yunshang.module.portalweb.controller.admin.article.vo.resp.ArticleRespVO;
import com.yunshang.module.portalweb.dal.dataobject.article.ArticleDO;
import com.yunshang.module.portalweb.dal.mysql.article.ArticleCatalogMapper;
import com.yunshang.module.portalweb.dal.mysql.article.ArticleDetailMapper;
import com.yunshang.module.portalweb.dal.mysql.article.ArticleFileMapper;
import com.yunshang.module.portalweb.dal.mysql.article.ArticleMapper;
import com.yunshang.module.portalweb.dal.mysql.catalog.CatalogMapper;
import com.yunshang.module.portalweb.service.catalog.CatalogService;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.slf4j.Logger;

import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;

import static org.mockito.Mockito.*;

/**
 * ---------------------------
 *
 * @author : Chen Rong
 * @version : v1.0
 * ---------------------------
 * @Description :
 * ---------------------------
 * @date : 2024年02月26日 14:55
 */
class ArticleServiceImplTest2 {
    @Mock
    ArticleMapper articleMapper;
    @Mock
    CatalogService catalogService;
    @Mock
    ArticleCatalogService articleCatalogService;
    @Mock
    ArticleDetailMapper articleDetailMapper;
    @Mock
    ArticleFileMapper articleFileMapper;
    @Mock
    CatalogMapper catalogMapper;
    @Mock
    ArticleCatalogMapper articleCatalogMapper;
    @Mock
    Logger log;
    @Mock
    SqlSessionFactory sqlSessionFactory;
    //Field typeArguments of type Class - was not mocked since Mockito doesn't mock a Final class when 'mock-maker-inline' option is not set
    //Field entityClass of type Class - was not mocked since Mockito doesn't mock a Final class when 'mock-maker-inline' option is not set
    //Field mapperClass of type Class - was not mocked since Mockito doesn't mock a Final class when 'mock-maker-inline' option is not set
    @InjectMocks
    ArticleServiceImpl articleServiceImpl;

    @BeforeEach
    void setUp() {
        MockitoAnnotations.openMocks(this);
    }

    @Test
    void testGetArticlePage() {
        when(articleMapper.selectPage(any(), anyInt())).thenReturn(new PageResult<ArticleDO>(List.of(new ArticleDO()), Long.valueOf(1)));

        PageResult<ArticleRespVO> result = articleServiceImpl.getArticlePage(new ArticlePageReqVO(Long.valueOf(1), "title", Integer.valueOf(0), new GregorianCalendar(2024, Calendar.FEBRUARY, 26, 14, 55).getTime(), new GregorianCalendar(2024, Calendar.FEBRUARY, 26, 14, 55).getTime(), Boolean.TRUE));
        Assertions.assertEquals(new PageResult<ArticleRespVO>(List.of(new ArticleRespVO()), Long.valueOf(1)), result);
    }

}

//Generated with love by TestMe :) Please raise issues & feature requests at: https://weirddev.com/forum#!/testme
  1. 使用真实数据库测试(最好不要)
package com.yunshang.module.portalweb.service.article;

import com.yunshang.module.portalweb.controller.admin.article.vo.resp.ArticleDetailRespVO;
import com.yunshang.module.portalweb.dal.mysql.article.ArticleCatalogMapper;
import com.yunshang.module.portalweb.dal.mysql.article.ArticleDetailMapper;
import com.yunshang.module.portalweb.dal.mysql.article.ArticleFileMapper;
import com.yunshang.module.portalweb.dal.mysql.article.ArticleMapper;
import com.yunshang.module.portalweb.dal.mysql.catalog.CatalogMapper;
import com.yunshang.module.portalweb.service.catalog.CatalogService;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import javax.annotation.Resource;

@SpringBootTest
class ArticleServiceImplTest {
    @Autowired
    ArticleMapper articleMapper;
    @Mock
    CatalogService catalogService;
    @Mock
    ArticleCatalogService articleCatalogService;
    @Mock
    ArticleDetailMapper articleDetailMapper;
    @Mock
    ArticleFileMapper articleFileMapper;
    @Mock
    CatalogMapper catalogMapper;
    @Mock
    ArticleCatalogMapper articleCatalogMapper;
    @Mock
    Logger log;
    @Mock
    SqlSessionFactory sqlSessionFactory;
    //Field typeArguments of type Class - was not mocked since Mockito doesn't mock a Final class when 'mock-maker-inline' option is not set
    //Field entityClass of type Class - was not mocked since Mockito doesn't mock a Final class when 'mock-maker-inline' option is not set
    //Field mapperClass of type Class - was not mocked since Mockito doesn't mock a Final class when 'mock-maker-inline' option is not set
    @Resource
    ArticleService articleServiceImpl;

    @BeforeEach
    void setUp() {
        MockitoAnnotations.openMocks(this);
    }

    @Test
    void testGetArticlePage() {
        // 此处
        ArticleDetailRespVO result = articleServiceImpl.selectArticleDetail(1750342735686905857L);
        ArticleDetailRespVO trueRes = new ArticleDetailRespVO();
        Assertions.assertEquals(new ArticleDetailRespVO(), result);
    }

}

//Generated with love by TestMe :) Please raise issues & feature requests at: https://weirddev.com/forum#!/testme

发表回复

textsms
account_circle
email

  • I really appreciate this post. I have been looking all over for this! Thank goodness I found it on Bing. You’ve made my day! Thank you again

    3 月前 回复
  • Admiring the hard work you put into your blog and in depth information you provide. It’s awesome to come across a blog every once in a while that isn’t the same old rehashed material. Wonderful read! I’ve saved your site and I’m adding your RSS feeds to my Google account.

    1 月前 回复

BlessingCR’s Blog

单元测试-样例代码
mock测试 package com.yunshang.module.portalweb.service.article; import com.yunshang.framework.common.pojo.PageResult; import com.yunshang.module.portalweb.controller.admin.…
扫描二维码继续阅读
2024-02-26