SpringBoot:springboot2.0.2写测试用例

Posted yy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot:springboot2.0.2写测试用例相关的知识,希望对你有一定的参考价值。

导入maven依赖:

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

测试用例:

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.boco.jobmonitor.App;
import com.boco.jobmonitor.model.SjmcJobitem;
import com.boco.jobmonitor.service.SjmcJobitemService;
import com.boco.jobmonitor.service.impl.SjmcJobitemServiceImpl;
import com.boco.jobmonitor.vo.ClusterAppVo;
import com.boco.jobmonitor.vo.ClusterNodeVo;

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = { App.class, JobitemServiceImpl.class }, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)//配置启动类
public class AppTest {

    @Autowired
    private JobitemService sJobitemService;

    @Test
    public void testInsertJob() {
        Jobitem jobitem = new Jobitem("application_1548381669007_0055", "/home/dx/tommyduan/submit_x1_x2.sh",
                "RUNING", "", "1", "admin", new Date());
        Integer result = sJobitemService.insert(jobitem);
        System.out.println(result);
    }
}

注意:

在@SpringBootTest(classes = { App.class, JobitemServiceImpl.class }中可选包含JobitemServiceImpl(一定不能忘记注册@Service到该类,否则会抛出异常,说一些依赖未能加载)。

App.class是springboot的入口类:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.scheduling.annotation.EnableScheduling;

import tk.mybatis.spring.annotation.MapperScan;

/**
 * SpringBoot入口函数<br>
 * 启动脚本:java -jar -Dspring.profiles.active=prod -Dserver.port=8080
 * 。。。-web-1.0.0-SNAPSHOT.jar
 * */
@SpringBootApplication(scanBasePackages = {})
@MapperScan("com.dx.jobmonitor.mapper")
@EnableScheduling
public class App {
    private static final Logger logger = LoggerFactory.getLogger(App.class);

    public static void main(String[] args) {
        logger.info("App start...");
        SpringApplication.run(App.class, args);
    }
}

运行:

 运行日志如下:

log4j:WARN No appenders could be found for logger (org.springframework.test.context.junit4.SpringJUnit4ClassRunner).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/D:/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/D:/.m2/repository/org/slf4j/slf4j-log4j12/1.7.25/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]

  .   ____          _            __ _ _
 /\\\\ / ___\'_ __ _ _(_)_ __  __ _ \\ \\ \\ \\
( ( )\\___ | \'_ | \'_| | \'_ \\/ _` | \\ \\ \\ \\
 \\\\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  \'  |____| .__|_| |_|_| |_\\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.0.2.RELEASE)

2019-02-18 22:38:59.277  INFO 21268 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode!
Mon Feb 18 22:39:01 CST 2019 WARN: Establishing SSL connection without server\'s identity verification is not recommended. According to mysql 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn\'t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to \'false\'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
2019-02-18 22:39:01.921  INFO 21268 --- [           main] com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} inited
2019-02-18 22:39:01.927 DEBUG 21268 --- [           main] c.b.j.m.PermissionMapper.selectAllPerms  : ==>  Preparing: SELECT id, permission_id, name, description, url, perms, parent_id, type, order_num, icon, status, create_time, update_time FROM permission WHERE status=? ORDER BY order_num 
2019-02-18 22:39:02.089 DEBUG 21268 --- [           main] c.b.j.m.PermissionMapper.selectAllPerms  : ==> Parameters: 1(Integer)
2019-02-18 22:39:02.152 DEBUG 21268 --- [           main] c.b.j.m.PermissionMapper.selectAllPerms  : <==      Total: 41
2019-02-18 22:39:02.624  INFO 21268 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2019-02-18 22:39:02.624  INFO 21268 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.31
2019-02-18 22:39:02.635  INFO 21268 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener   : Loaded APR based Apache Tomcat Native library [1.2.19] using APR version [1.6.5].
2019-02-18 22:39:02.636  INFO 21268 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener   : APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
2019-02-18 22:39:02.636  INFO 21268 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener   : APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
2019-02-18 22:39:02.639  INFO 21268 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener   : OpenSSL successfully initialized [OpenSSL 1.1.1a  20 Nov 2018]
2019-02-18 22:39:02.814  INFO 21268 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2019-02-18 22:39:04.705  WARN 21268 --- [           main] org.thymeleaf.templatemode.TemplateMode  : [THYMELEAF][main] Template Mode \'LEGACYHTML5\' is deprecated. Using Template Mode \'HTML\' instead.
2019-02-18 22:39:06.152  INFO 21268 --- [           main] c.b.jobmonitor.aspect.RedisCacheAspect   : 清空缓存 - scom_dx_jobmonitor_service_impl_JobitemServiceImpl*
2019-02-18 22:39:06.255  INFO 21268 --- [           main] io.lettuce.core.EpollProvider            : Starting without optional epoll library
2019-02-18 22:39:06.256  INFO 21268 --- [           main] io.lettuce.core.KqueueProvider           : Starting without optional kqueue library
2019-02-18 22:39:06.459 DEBUG 21268 --- [           main] c.b.j.mapper.JobitemMapper.insert    : ==>  Preparing: INSERT INTO jobitem ( id,appid,submitfilepath,state,monitortype,createuserid,createusername,createtime ) VALUES( ?,?,?,?,?,?,?,? ) 
2019-02-18 22:39:06.508 DEBUG 21268 --- [           main] c.b.j.mapper.JobitemMapper.insert    : ==> Parameters: null, application_1548381669007_0054(String), /home/dx/tommyduan/submit_x1_x2.sh(String), RUNING(String), (String), 1(String), admin(String), 2019-02-18 22:39:06.137(Timestamp)
2019-02-18 22:39:06.540 DEBUG 21268 --- [           main] c.b.j.mapper.JobitemMapper.insert    : <==    Updates: 1
2019-02-18 22:39:06.543 DEBUG 21268 --- [           main] c.b.j.m.S.insert!selectKey               : ==>  Executing: SELECT LAST_INSERT_ID() 
2019-02-18 22:39:06.546 DEBUG 21268 --- [           main] c.b.j.m.S.insert!selectKey               : <==      Total: 1
1
2019-02-18 22:39:07.705  INFO 21268 --- [       Thread-3] com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} closed

 

以上是关于SpringBoot:springboot2.0.2写测试用例的主要内容,如果未能解决你的问题,请参考以下文章

2018最新SpringBoot2.0教程(零基础入门)

零基础快速入门SpringBoot2.0

SpringBoot2.0之五 优雅整合SpringBoot2.0+MyBatis+druid+PageHelper

SpringBoot2.0源码分析:整合ActiveMQ分析

零基础快速入门SpringBoot2.0

SpringBoot2.0最新版相关技术