1.maven引入
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> |
2.新建基类BaseJunitTest.java
package c.a.s.junit.controller; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest @TestPropertySource(locations = {"classpath:application-test.properties"}) public class BaseJunitTest { @BeforeClass public static void init() { System.out.println("开始测试..."); } @AfterClass public static void after() { System.out.println("测试结束..."); } } |
3.JunitDemoTest.java
package c.a.s.junit.controller; import c.a.s.api.user.bo.EsSearchCountQueryBO; import c.a.s.api.user.bo.SoHistorySearchBO; import c.a.s.api.user.service.EsSearchCountService; import c.a.s.api.user.service.InitH2DataBaseService; import com.alibaba.fastjson.JSONObject; import com.ohaotian.plugin.base.bo.RspBaseBO; import org.junit.*; import org.mockito.Mockito; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.mock.mockito.MockBean; import java.util.List; import static org.junit.Assert.assertEquals; /** * 描述: junit单元测试demo * 公司: www.tydic.com * @author ningjianguo * @time 2020/8/27 15:18 */ public class JunitDemoTest extends BaseJunitTest{ Logger logger= LoggerFactory.getLogger(JunitDemoTest.class); @Autowired //创建一个实例,简单的说是这个Mock可以调用真实代码的方法,其余用@Mock(或@Spy)注解创建的mock将被注入到用该实例中 InitH2DataBaseService initH2DataBaseService; @MockBean //对这个bean进行mock EsSearchCountService esSearchCountService; @Before public void setup() { logger.info("每个测试运行前的启动方法"); //初始化sql,慎重执行 String sql="DROP TABLE IF EXISTS TEST2;\n" + "CREATE TABLE TEST2 (\n" + "\tID INT PRIMARY KEY AUTO_INCREMENT,\n" + "\tNAME VARCHAR (255)\n" + ");\n" + "INSERT INTO TEST2(NAME) VALUES('name1');\n" + "INSERT INTO TEST2(NAME) VALUES('name2');\n" + "INSERT INTO TEST2(NAME) VALUES('name3');"; initH2DataBaseService.initH2(sql); } @Test public void test1() throws Exception { String querySql="select * from TEST2 where NAME='name1'"; //mock数据 List<SoHistorySearchBO> list= JSONObject.parseArray("[{\"historySearch\":\"123\",\"searchType\":\"1\"},{\"historySearch\":\"1233\",\"searchType\":\"1\"}]",SoHistorySearchBO.class); Mockito.when(esSearchCountService.historySearch(Mockito.any(EsSearchCountQueryBO.class))).thenReturn(list); //代表执行具体某个方法 RspBaseBO result=initH2DataBaseService.query(querySql); //断言 assertEquals("0",result.getCode()); } @After public void cleanup() { logger.info("每个测试运行后的启动方法"); } } |
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理