首页 > 编程语言 >关于Java:使用Mockito注入自动装配的bean并在模拟上设置一些属性

关于Java:使用Mockito注入自动装配的bean并在模拟上设置一些属性

时间:2023-03-26 11:35:20浏览次数:45  
标签:orderId mockito Java orderInfo Mockito bean test return OrderInfo

demo

/**
 * @author lfy
 * @Description 支付上下文引用支付策略; 这个上下文也是模板类;定义好算法步骤
 * @create 2022-12-28 22:46
 */
@Service
@Slf4j //模板类
public class PayServiceImpl implements PayService {

    @Autowired
    private List<PayStrategy> payStrategies; //注入支付策略

    /**
     * 生成收银台页面
     * @param type
     * @param orderId
     * @return
     */
    @Override
    public String payPage(String type, Long orderId) {
        //1、查询数据库订单
        OrderInfo orderInfo = getOrderInfo(orderId);
        //2、生成支付页
        for (PayStrategy strategy : payStrategies) {
            if(strategy.supports(type)){
                //获取收银台页面
                return strategy.cashierPage(orderInfo);
            }
        }
        //3、如果以上都不支持,打印错误
        return "不支持这种支付方式";
    }


    public OrderInfo getOrderInfo(Long orderId){
        log.info("查询数据库订单:{}",orderId);
        OrderInfo orderInfo = new OrderInfo();
        orderInfo.setId(orderId);
        orderInfo.setTitle("尚品汇-商城-订单");
        orderInfo.setComment("快点发货");
        orderInfo.setDesc("买了一堆商品");
        orderInfo.setPrice(new BigDecimal("9098.00"));
        orderInfo.setExpireTime(new Date(System.currentTimeMillis()+30*60*1000));

        return orderInfo;
    }
}

 

添加gav

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-all</artifactId>
    <version>1.8.5</version>
    <scope>test</scope>
</dependency>

 

测试类

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-all</artifactId>
    <version>1.8.5</version>
    <scope>test</scope>
</dependency>

  

标签:orderId,mockito,Java,orderInfo,Mockito,bean,test,return,OrderInfo
From: https://www.cnblogs.com/smile008/p/17257792.html

相关文章

  • java根据excel某些格子特定内容归类文件(定值单分类工具)
      packagecom.xxx.controller;importjava.io.File;importjava.io.IOException;importjava.nio.file.Files;importjava.nio.file.Path;importjava.nio.file.Pa......
  • Java学习1-前三次题目集的分析与总结
    一. 前言 作为刚学习JAVA的小白,以下只是本人作为普通学生,以当前能力和状态所做出的总结和分析,不足之处也欢迎各位大佬的指正! 第一和第二次题目集的大部分题目难度较......
  • HelloWorld之Java调用C++(JNI)
    JNI(JavaNativeInterface),通过使用Java本地接口书写程序,可以确保代码在不同的平台上方便移植。1、java新建类HelloWorld,并声明native方法,引入hello的dllpublicclassHel......
  • HelloWorld之Java调用C++(JNI)
    JNI(JavaNativeInterface),通过使用Java本地接口书写程序,可以确保代码在不同的平台上方便移植。1、java新建类HelloWorld,并声明native方法,引入hello的dllpublicclassHel......
  • Javascript实现页面商品个数增减功能
    效果利用jQuery操作页面元素的方法,实现电商网站购物车页面商品数量的增加和减少操作,要求单项价格和总价随着数量的改变而改变当用户点击+按钮是,文本框中的商品数量增加1,......
  • Caused by: java.sql.SQLException: Parameter index out of range (2 > number of pa
    一、问题背景在xml配置中自定义了sql语句二、报错截图如下三、我的项目配置如下四、分析问题五、问题原因在xml中自定义sql语句时,里面不能有注释过得sql六、解决......
  • Java ThreadLocal
    ThreadLocal的功能在Java多线程并发环境中非常实用,其作用是提供线程本地变量,例如用户ID、会话ID等与当前线程密切关联的信息。那么它在实际业务场景中可以怎么使用呢?让我们......
  • java学习日记20230325-接口
    接口基本介绍 接口就是给出一些没有实现的方法,封装到一起,到某个类要使用的时候,在根据具体情况把这些方法写出来。    如果一个类implements,需要将该接口的......
  • JAVA入门基础
    JAVA入门打开CMDWin+R输入cmd.按下回车键Win+E打开我的电脑常见CMD命令盘符名称+冒号说明:盘符切换举例:E:回车,表示切换到E盘dir说明:查看当前路径下的内容......
  • 闭关java第四天
    Java方法详解什么是方法是语句的集合最好保持原子性:就是一个方法只完成一个功能,这样利于我们后期的拓展Java方法类似于其它语言的函数,是一段用来完成特定功能的代码片......