随笔 - 836  文章 - 1 评论 - 40 阅读 - 102万
< 2025年3月 >
23 24 25 26 27 28 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 1 2 3 4 5

复制代码
public class Air21QueryMileStoneJobTest{
    @InjectMocks
    Air21QueryMileStoneJob air21QueryMileStoneJob ;
    @InjectMocks
     Air21OrderStatusHandler air21OrderStatusHandler;
    @org.mockito.Mock
    private LocationDAO locationDAO;
    @Before
    public void setup() {
         locationDAO= new LocationDAO();
         air21OrderStatusHandler = new Air21OrderStatusHandler();
         air21OrderStatusHandler.setLocationDAO(locationDAO);
        
         /*Map<String, String> criteriaMap = new HashMap<String, String>();
            criteriaMap.put("location", "AA");
         Mockito.when(locationDAO.query(criteriaMap)).thenReturn("GTM+8");*/
         MockitoAnnotations.initMocks(this); 
    }
    
@Test
    public void testQueryActionDateTzName() throws Exception {
        
        Map<String, String> criteriaMap = new HashMap<String, String>();
        criteriaMap.put("location", "AA");
        ArrayList<LocationDO> arrayList = new ArrayList<LocationDO>();
        LocationDO locationDO = new  LocationDO();locationDO.setTimezone("AAAA");
      arrayList.add(locationDO);
     Mockito.when(locationDAO.query(criteriaMap)).thenReturn(arrayList);
         
        //  Air21OrderStatusHandler air21OrderStatusHandler = new    Air21OrderStatusHandler();
          String queryActionDateTz = air21OrderStatusHandler.queryActionDateTz("AA");
          System.out.println(queryActionDateTz);
    }
View Code
复制代码

 

元代码:

复制代码
public class Air21OrderStatusHandler {
    /********************************
     * 1.convert bean step1 get comment data step2 loop scan_details step3 convert
     * data to order_status step4 collect order_status
     * 
     * 2.if status is DDL or DL1 ,update edi_history isOverMileStone="true"
     * 
     * 3.delete old milestone info
     * 
     * 4.save new milestone to orderstatus table
     ***************************************/
    @Autowired
    private LocationDAO locationDAO;

    


public String queryActionDateTz(String postLocation) {
        LOGGER.info("start get timezone by  location");
        String fTimeZone = "";
        Map<String, String> criteriaMap = new HashMap<String, String>();
        criteriaMap.put("location", postLocation);
        @SuppressWarnings("unchecked")
        List<LocationDO> locationDOlist = (List<LocationDO>) locationDAO.query(criteriaMap);
        if (!locationDOlist.isEmpty() && locationDOlist.size() > 0) {
            fTimeZone = locationDOlist.get(0).getTimezone();
        } else {
            fTimeZone = MilestoneConstant.TIME_ZONE;
        }
        LOGGER.info("end get timezone by  location");
        LOGGER.info("TimeZone is :{}", fTimeZone);
        return fTimeZone;
    }
View Code
复制代码

 

 

 

springboot  使用Mock

@RunWith(MockitoJUnitRunner.class)
@Slf4j
public class TestMilestoneController 
{

    

 

解决依赖注入:

复制代码
    @InjectMocks
    public MilestoneServiceImpl milestoneService;
    
    @Mock
    public MilestoneService milestoneServices;

     @Mock
    private MilestoneRepository milestoneRepository;

     @Mock
    @Qualifier("mongoTemplate")
    private MongoTemplate mongoTemplate;

     @Mock
    private BookingService bookingService;
复制代码

 

复制代码
@Service
@Slf4j
public class MilestoneServiceImpl implements MilestoneService {

    @Autowired
    private MilestoneRepository milestoneRepository;

    @Autowired
    @Qualifier("mongoTemplate")
    private MongoTemplate mongoTemplate;

    @Autowired
    private BookingService bookingService;

    @Autowired
    private OrderService orderService;
    @Autowired
    private CreateAndPushMilestoneHandler createAndPushMilestoneHandler;


    @Autowired
    private MilestoneExcelUploadHandler milestoneExcelUploadHandler;
复制代码

 

posted on   lshan  阅读(251)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示