Spring:测试Service类中方法

Maven坐标

<!-- JUNIT -->
<dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>4.11</version>
</dependency>
<!--test-->
<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-test</artifactId>
   <version>4.2.0</version>
</dependency>

业务代码

Spring配置类

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"
       default-lazy-init="true">

    <!-- Activates scanning of @Autowired -->
    <context:annotation-config/>

    <!-- Activates scanning of @Service -->
    <context:component-scan base-package="com.fly.cloudpay.service"/>

</beans>

Service接口

package com.fly.cloudpay.service.user;

import com.fly.cloudpay.dao.entity.PayUserDO;

import java.util.Map;

/**
 * @Title: 缴费用户信息--Service
 * @ClassName: com.fly.cloudpay.service.user.PayUserService.java
 * @Description:
 *
 * @Copyright 2016-2018  - Powered By 研发中心
 * @author: 王延飞
 * @date:  2018-03-02 14:24
 * @version V1.0
 */
public interface PayUserService {

  

    /**
     * @Title: 新增用户信息
     * @methodName:  add
     * @param payUserDO
     * @return void
     * @Description:
     *
     * @author: FLY
     * @date:  2018-03-02 15:15
     */
    void add(PayUserDO payUserDO);

}

Service实现类

package com.newcapec.fly.service.user.impl;

import com.newcapec.fly.constant.ControllerConstant;
import com.newcapec.fly.dao.PayUserDao;
import com.newcapec.fly.dao.entity.PayUserDO;
import com.newcapec.fly.service.user.PayUserService;
import com.newcapec.util.map.MapBeanTransUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.beans.IntrospectionException;
import java.lang.reflect.InvocationTargetException;
import java.util.Date;
import java.util.Map;

/**
 * @version V1.0
 * @Title: 缴费用户信息--Service实现层
 * @ClassName: com.newcapec.fly.service.user.impl.PayUserServiceImpl.java
 * @Description:
 * @Copyright 2016-2018  - Powered By 研发中心
 * @author: FLY
 * @date: 2018-03-02 14:24
 */
@Service
public class PayUserServiceImpl implements PayUserService {

    private static final Logger log = LoggerFactory.getLogger(PayUserServiceImpl.class);

    @Autowired
    private PayUserDao payUserDao;



    /**
     * @param payUserDO
     * @return void
     * @Title: 新增缴费用户信息
     * @methodName: add
     * @Description:
     * @author: FLY
     * @date: 2018-03-02 15:15
     */
    @Override
    public void add(PayUserDO payUserDO) {

        log.info("【新增缴费用户信息】,接收参数:{}", payUserDO);
        payUserDao.save(payUserDO);
    }

    

}

Spring测试类

package service;

import com.fly.cloudpay.dao.PayUserDao;
import com.fly.cloudpay.dao.entity.PayUserDO;
import com.fly.cloudpay.service.user.PayUserService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

/**
 * @Title:
 * @ClassName: service.ServiceTest.java
 * @Description:
 *
 * @Copyright 2016-2018  - Powered By 研发中心
 * @author: FLY
 * @date:  2018-03-01 11:35
 * @version V1.0
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring/applicationContext-dao.xml",
        "classpath:spring/applicationContext-spring.xml"})
public class ServiceTest {

    @Autowired
    PayUserService payUserService;


    @Autowired
    private PayUserDao payUserDao;

    @Test
    public void payUserAddTest(){

        PayUserDO payUserDO = new PayUserDO();
        payUserDO.setPayUserIdNum("123456");
        payUserDO.setPayUserName("FLY");
        payUserDO.setBindTime(new java.util.Date());
        payUserService.add(payUserDO);
    }

   
}

 

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: 可能是因为你没有在Service类中添加具体的逻辑代码。Service类一般是用来实现业务逻辑的,如果没有具体的语句,可能是因为你还没有为这个Service类添加相应的业务逻辑代码。你可以参考Spring Boot的官方文档或者一些开源项目来学习如何编写Service类。 ### 回答2: 在Spring Boot中,service是一种用于处理业务逻辑的组件。它的主要作用是将控制器(Controller)和数据访问层(DAO)进行解耦,实现业务逻辑的复用和集中管理。因此,在service下通常不会包含太多的语句。 首先,Spring Boot强调了面向接口编程的思想,因此,service通常会定义一个接口,然后由具体实现类来实现该接口。这样做的好处是可以随时替换不同的实现类,而不影响其他组件的正常工作。所以,在service下可能只会包含接口定义的语句,例如方法签名和注解等。 其次,service的主要职责是组织和调用业务逻辑,而不是实际执行具体的业务操作。它通常会依赖其他的组件,例如DAO、第三方API等,来完成具体的业务操作。因此,在service下的语句往往是一些调用其他组件的语句,例如调用DAO的方法来操作数据库,或者调用第三方API获取数据等。 最后,为了保持代码的整洁和可维护性,通常建议将具体的业务逻辑封装在service方法中,而不是直接在service类中写大量的语句。这样可以使代码结构更清晰,易于理解和修改。同时,将具体的业务逻辑封装在方法中,也可以提高代码的可测试性,方便编写和执行单元测试。 综上所述,Spring Boot中的service层主要是为了提供业务逻辑的组织与调用,并且强调面向接口编程的思想。因此,在service下通常不会包含太多的语句,而是以接口定义、调用其他组件的语句为主。 ### 回答3: 在Spring Boot中,Service是一种用来处理业务逻辑的组件。Service用于封装复杂的业务逻辑,与数据库交互,进行数据处理和计算等操作。在Service层中,通常不包含太多的语句是因为它遵循了单一职责的原则。 首先,Service层的主要目的是为了提供一种业务逻辑的抽象。它将业务逻辑从Controller层中解耦出来,保证了代码的可复用性和可维护性。通过将业务逻辑封装在Service中,可以使Controller层更加简洁和专注于处理HTTP请求和响应。 其次,Service层更加关注业务层面的工作,而不是具体的语句实现。在Service层中,可能会包含一些条件判断、循环操作等基本语句,但是不会包含过多的复杂逻辑。相反,Service层更多的是调用其他组件或者依赖层来完成具体的业务操作,例如调用Repository层进行数据库操作。 此外,Service层的职责也包括处理事务、异常处理和数据验证等。这些都是与具体语句无关的操作,需要Service层来完成。因此,Service层更注重对业务流程的管理和控制,而不是具体的语句实现。 总之,Spring Boot中的Service层不包含过多的语句,是为了保证代码的清晰性和可维护性。它主要负责封装业务逻辑,与其他层进行交互,保障系统的高内聚性和低耦合性,提高代码的可读性和可测试性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

琦彦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值