关于Java:使用Mockito注入自动装配的bean并在模拟上设置一些属性
demo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | /** * @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
1 2 3 4 5 6 7 8 9 10 11 | <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> |
测试类
1 2 3 4 5 6 7 8 9 10 11 | <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> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!