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 2018-07-09 18:44  lshan  阅读(249)  评论(0编辑  收藏  举报