TESTNG和MOCK配合使用实例

直接帖代码了

这个是测试类

import java.util.HashMap;
import java.util.Map;

import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

import com.google.gson.Gson;


public class OperateShopCouponServiceImplTest {
    @InjectMocks
    private OperateShopCouponServiceImpl operateShopCouponServiceImpl;

    @Mock
    private UserInfoService userInfoService;
    @Mock
    private PromotionBaseService promotionBaseService;
    @Mock
    private ShopCouponTemplateSendService shopCouponTemplateSendService;
    @Mock
    private CouponAccountService couponAccountService;
    @Mock
    private ShopFavoriteCommonService shopFavoriteCommonService;
    @Mock
    private OperateShopCouponExportService operateShopCouponExportService;
    @Mock
    private ShopFavoriteGiftService shopFavoriteGiftService;
    @Mock
    private PageShardingDalClient dalClient;
    @SuppressWarnings("unchecked")
    @DataProvider
    public Object[][] dp1() {
        String reqJsonStr = "{'pageCode':'111','pageName':'222','pageChannel':'31'}";
        Map<String, Object> reqMap = new Gson().fromJson(reqJsonStr, Map.class);
        return new Object[][] { { reqMap } };
    }

    @BeforeClass
    public void beforeClass() {
        // 自动将依赖的类注入待测类
        MockitoAnnotations.initMocks(this);
    }

    // 品牌商保存测试
    @SuppressWarnings("unchecked")
    @Test(dataProvider = "dp1", groups = "exectest")
    public void insertPromotionInfoTestP(Map<String, Object> inputMap) {
        Mockito.reset(promotionBaseService);
        // 构造请求参数
        Map<String, Object> paramMap = Mockito.anyMap();
        paramMap.put("showRegion", "1");
        paramMap.put("baseAmount", "1");
        paramMap.put("couponType", "1");
        paramMap.put("assignedRole", "03");
        paramMap.put("rewardAmount", 112222);
        paramMap.put("activityTimesLimit", 1000000000);
        // 执行特定方法,构造返回值
        Map<String, Object> newParamMap = new HashMap<String, Object>();
        newParamMap.put("sendFlag", "");
        newParamMap.put("activityCode", "");
        newParamMap.put("excludeProduct", "");
        newParamMap.put("donationFlag", "");
        newParamMap.put("operationType", "");
        newParamMap.put("showRegion", "");
        newParamMap.put("activityStatus", "");
        newParamMap.put("activityType", "");
        Map<String, Object> supplyInfoMap = new HashMap<String, Object>();
        supplyInfoMap.put("supplierType", "K");
        Mockito.when(userInfoService.getSupplyinfoByCode(newParamMap))
                .thenReturn(supplyInfoMap);
        CouponAccountBean couponAccountBean1 = new CouponAccountBean();
        couponAccountBean1.setReceiveFlag("F");
        Mockito.when(
                couponAccountService.activeCreateAddStop(Mockito
                        .any(CouponAccountBean.class))).thenReturn(
                couponAccountBean1);

        // 调用接口
        operateShopCouponServiceImpl.insertPromotionInfoP(paramMap);
    }


    @SuppressWarnings("unchecked")
    @Test(dataProvider = "dp1", groups = "exectest")
    public void insertPromotionInfoTestP1(Map<String, Object> inputMap) {
        Mockito.reset(promotionBaseService);
        // 构造请求参数
        Map<String, Object> paramMap = Mockito.anyMap();
        paramMap.put("baseAmount", "");
        paramMap.put("channelInfo", "22");
        paramMap.put("assignedRole", "03");
        paramMap.put("rewardAmount", 112222);
        paramMap.put("productCode", "3335526");
        paramMap.put("supplierType", "P");
        paramMap.put("activityTimesLimit", 1000000000);
        // 执行特定方法,构造返回值
        Map<String, Object> newParamMap = new HashMap<String, Object>();
        newParamMap.put("sendFlag", "");
        newParamMap.put("activityCode", "");
        newParamMap.put("excludeProduct", "");
        newParamMap.put("donationFlag", "");
        newParamMap.put("operationType", "");
        newParamMap.put("showRegion", "");
        newParamMap.put("activityStatus", "");
        newParamMap.put("activityType", "");
        Map<String, Object> supplyInfoMap = new HashMap<String, Object>();
        supplyInfoMap.put("supplierType", "K");
        Mockito.when(userInfoService.getSupplyinfoByCode(newParamMap))
                .thenReturn(supplyInfoMap);
        CouponAccountBean couponAccountBean1 = new CouponAccountBean();
        couponAccountBean1.setReceiveFlag("S");
        CouponAccountBean couponAccountBean3 = new CouponAccountBean();
        couponAccountBean3.setReceiveFlag("S");
        Mockito.when(
                couponAccountService.activeCreateAddStop(Mockito
                        .any(CouponAccountBean.class)))
                .thenReturn(couponAccountBean1).thenReturn(couponAccountBean3);
        Mockito.when(
                operateShopCouponExportService.createOrModifyShopCouponInfoP(
                        paramMap, "1")).thenReturn("XXX");
        Map<String, Object> responseMap = new HashMap<String, Object>();
        responseMap.put("flag", "1");
        Mockito.when(operateShopCouponExportService.send(Mockito.anyString()))
                .thenReturn(responseMap);
        CouponAccountBean ticketRuleIdNoticeBean = new CouponAccountBean();
        ticketRuleIdNoticeBean.setReceiveFlag("F");
        Mockito.when(
                couponAccountService.ticketRuleIdNotice(Mockito.anyString(),
                        Mockito.anyString(), Mockito.anyString())).thenReturn(
                ticketRuleIdNoticeBean);

        // 调用接口
        operateShopCouponServiceImpl.insertPromotionInfoP(paramMap);
    }


    @SuppressWarnings("unchecked")
    @Test(dataProvider = "dp1", groups = "exectest")
    public void insertPromotionInfoTestP11(Map<String, Object> inputMap) {
        Mockito.reset(promotionBaseService);
        // 构造请求参数
        Map<String, Object> paramMap = Mockito.anyMap();
        paramMap.put("baseAmount", "1213415");
        paramMap.put("assignedRole", "03");
        paramMap.put("rewardAmount", 112222);
        paramMap.put("activityTimesLimit", 1000000000);
        String[] showRegion = { "33", "22" };
        paramMap.put("showRegion", showRegion);
        String[] channelInfo = { "21", "32" };
        paramMap.put("channelInfo", channelInfo);
        String[] productCode = { "21223355", "3253565" };
        paramMap.put("productCode", productCode);
        // 执行特定方法,构造返回值
        Map<String, Object> newParamMap = new HashMap<String, Object>();
        newParamMap.put("sendFlag", "");
        newParamMap.put("activityCode", "");
        newParamMap.put("excludeProduct", "");
        newParamMap.put("donationFlag", "");
        newParamMap.put("operationType", "");
        newParamMap.put("showRegion", showRegion);
        newParamMap.put("activityStatus", "");
        newParamMap.put("activityType", "");
        Map<String, Object> supplyInfoMap = new HashMap<String, Object>();
        supplyInfoMap.put("supplierType", "S");
        Mockito.when(userInfoService.getSupplyinfoByCode(newParamMap))
                .thenReturn(supplyInfoMap);
        CouponAccountBean couponAccountBean1 = new CouponAccountBean();
        couponAccountBean1.setReceiveFlag("S");
        CouponAccountBean couponAccountBean3 = new CouponAccountBean();
        couponAccountBean3.setReceiveFlag("S");
        Mockito.when(
                couponAccountService.activeCreateAddStop(Mockito
                        .any(CouponAccountBean.class)))
                .thenReturn(couponAccountBean1).thenReturn(couponAccountBean3);
        Mockito.when(
                operateShopCouponExportService.createOrModifyShopCouponInfoP(
                        paramMap, "1")).thenReturn("XXX");
        Map<String, Object> responseMap = new HashMap<String, Object>();
        responseMap.put("flag", "0");
        Mockito.when(operateShopCouponExportService.send(Mockito.anyString()))
                .thenReturn(responseMap);
        CouponAccountBean ticketRuleIdNoticeBean = new CouponAccountBean();
        ticketRuleIdNoticeBean.setReceiveFlag("F");
        Mockito.when(
                couponAccountService.ticketRuleIdNotice(Mockito.anyString(),
                        Mockito.anyString(), Mockito.anyString())).thenReturn(
                ticketRuleIdNoticeBean);
        // 调用接口
        operateShopCouponServiceImpl.insertPromotionInfoP(paramMap);
    }

    @SuppressWarnings("unchecked")
    @Test(dataProvider = "dp1", groups = "exectest")
    public void insertPromotionInfoTestP111(Map<String, Object> inputMap) {
        Mockito.reset(promotionBaseService);
        // 构造请求参数
        Map<String, Object> paramMap = Mockito.anyMap();
        paramMap.put("baseAmount", "");
        paramMap.put("assignedRole", "03");
        paramMap.put("rewardAmount", 112222);
        paramMap.put("activityTimesLimit", 1000000000);
        paramMap.put("startTime", "2017-04-12");
        String[] showRegion = { "66", "55" };
        paramMap.put("showRegion", showRegion);
        String[] channelInfo = { "21", "32" };
        paramMap.put("channelInfo", channelInfo);
        String[] productCode = { "21223355", "3253565" };
        paramMap.put("productCode", productCode);
        Map<String, Object> supplyInfoMap = new HashMap<String, Object>();
        supplyInfoMap.put("supplierType", "K");
        Mockito.when(userInfoService.getSupplyinfoByCode(paramMap))
                .thenReturn(supplyInfoMap);
        CouponAccountBean couponAccountBean1 = new CouponAccountBean();
        couponAccountBean1.setReceiveFlag("S");
        CouponAccountBean couponAccountBean3 = new CouponAccountBean();
        couponAccountBean3.setReceiveFlag("F");
        Mockito.when(
                couponAccountService.activeCreateAddStop(Mockito
                        .any(CouponAccountBean.class)))
                .thenReturn(couponAccountBean1).thenReturn(couponAccountBean3);
        Mockito.when(
                operateShopCouponExportService.createOrModifyShopCouponInfoP(
                        paramMap, "1")).thenReturn("XXX");
        Map<String, Object> responseMap = new HashMap<String, Object>();
        Mockito.when(operateShopCouponExportService.send(Mockito.anyString()))
                .thenReturn(responseMap);
        // 调用接口
        operateShopCouponServiceImpl.insertPromotionInfoP(paramMap);
    }

    @SuppressWarnings("unchecked")
    @Test(dataProvider = "dp1", groups = "exectest")
    public void updatePromotionBasePTest(Map<String, Object> inputMap) {
        Mockito.reset(promotionBaseService);
        // 构造请求参数
        Map<String, Object> paramMap = Mockito.anyMap();
        paramMap.put("baseAmount", "");
        paramMap.put("assignedRole", "03");
        paramMap.put("operateAmount", 10000000);
        paramMap.put("rewardAmount", 112222);
        paramMap.put("activityTimesLimit", 1000000000);
        paramMap.put("startTime", "2017-04-12");
        Map<String, Object> supplyInfoMap = new HashMap<String, Object>();
        supplyInfoMap.put("supplierType", "K");
        Mockito.when(userInfoService.getSupplyinfoByCode(paramMap))
                .thenReturn(supplyInfoMap);
        CouponAccountBean couponAccountBean1 = new CouponAccountBean();
        couponAccountBean1.setReceiveFlag("S");
        CouponAccountBean couponAccountBean3 = new CouponAccountBean();
        couponAccountBean3.setReceiveFlag("F");
        Mockito.when(
                couponAccountService.activeCreateAddStop(Mockito
                        .any(CouponAccountBean.class)))
                .thenReturn(couponAccountBean1).thenReturn(couponAccountBean3);
        Mockito.when(
                operateShopCouponExportService.createOrModifyShopCouponInfoP(
                        paramMap, "1")).thenReturn("XXX");
        Map<String, Object> responseMap = new HashMap<String, Object>();
        Mockito.when(operateShopCouponExportService.send(Mockito.anyString()))
                .thenReturn(responseMap);
        // 调用接口
        operateShopCouponServiceImpl.updatePromotionBaseP(paramMap);
    }

    @SuppressWarnings("unchecked")
    @Test(dataProvider = "dp1", groups = "exectest")
    public void updatePromotionBasePTest1(Map<String, Object> inputMap) {
        Mockito.reset(promotionBaseService);
        // 构造请求参数
        Map<String, Object> paramMap = Mockito.anyMap();
        paramMap.put("baseAmount", "");
        paramMap.put("assignedRole", "03");
        paramMap.put("operateAmount", 10000000);
        paramMap.put("rewardAmount", 112222);
        paramMap.put("activityTimesLimit", 1000000000);
        paramMap.put("startTime", "2017-04-12");
        Map<String, Object> supplyInfoMap = new HashMap<String, Object>();
        supplyInfoMap.put("supplierType", "K");
        Mockito.when(userInfoService.getSupplyinfoByCode(paramMap))
                .thenReturn(supplyInfoMap);
        CouponAccountBean couponAccountBean1 = new CouponAccountBean();
        couponAccountBean1.setReceiveFlag("F");
        Mockito.when(
                couponAccountService.activeCreateAddStop(Mockito
                        .any(CouponAccountBean.class)))
                .thenReturn(couponAccountBean1);
        // 调用接口
        operateShopCouponServiceImpl.updatePromotionBaseP(paramMap);
    }


    @SuppressWarnings("unchecked")
    @Test(dataProvider = "dp1", groups = "exectest")
    public void updatePromotionBasePTest11(Map<String, Object> inputMap) {
        Mockito.reset(promotionBaseService);
        // 构造请求参数
        Map<String, Object> paramMap = Mockito.anyMap();
        paramMap.put("baseAmount", "");
        paramMap.put("assignedRole", "03");
        paramMap.put("operateAmount", 10000000);
        paramMap.put("rewardAmount", 112222);
        paramMap.put("activityTimesLimit", 1000000000);
        paramMap.put("startTime", "2017-04-12");
        Map<String, Object> supplyInfoMap = new HashMap<String, Object>();
        supplyInfoMap.put("supplierType", "K");
        Mockito.when(userInfoService.getSupplyinfoByCode(paramMap))
                .thenReturn(supplyInfoMap);
        CouponAccountBean couponAccountBean1 = new CouponAccountBean();
        couponAccountBean1.setReceiveFlag("S");
        CouponAccountBean couponAccountBean3 = new CouponAccountBean();
        couponAccountBean3.setReceiveFlag("S");
        Mockito.when(
                couponAccountService.activeCreateAddStop(Mockito
                        .any(CouponAccountBean.class)))
                .thenReturn(couponAccountBean1).thenReturn(couponAccountBean3);
        Mockito.when(
                operateShopCouponExportService.createOrModifyShopCouponInfoP(
                        paramMap, "2")).thenReturn("XXX");
        Map<String, Object> responseMap = new HashMap<String, Object>();
        responseMap.put("flag", "1");
        Mockito.when(operateShopCouponExportService.send(Mockito.anyString()))
                .thenReturn(responseMap);
        // 调用接口
        operateShopCouponServiceImpl.updatePromotionBaseP(paramMap);
    }
    
 更新测试
    @SuppressWarnings("unchecked")
    @Test(dataProvider = "dp1", groups = "exectest")
    public void updatePromotionBasePTest111(Map<String, Object> inputMap) {
        Mockito.reset(promotionBaseService);
        // 构造请求参数
        Map<String, Object> paramMap = Mockito.anyMap();
        paramMap.put("baseAmount", "");
        paramMap.put("assignedRole", "03");
        paramMap.put("operateAmount", 10000000);
        paramMap.put("rewardAmount", 112222);
        paramMap.put("activityTimesLimit", 1000000000);
        paramMap.put("startTime", "2017-04-12");
        Map<String, Object> supplyInfoMap = new HashMap<String, Object>();
        supplyInfoMap.put("supplierType", "K");
        Mockito.when(userInfoService.getSupplyinfoByCode(paramMap))
                .thenReturn(supplyInfoMap);
        CouponAccountBean couponAccountBean1 = new CouponAccountBean();
        couponAccountBean1.setReceiveFlag("S");
        CouponAccountBean couponAccountBean3 = new CouponAccountBean();
        couponAccountBean3.setReceiveFlag("S");
        Mockito.when(
                couponAccountService.activeCreateAddStop(Mockito
                        .any(CouponAccountBean.class)))
                .thenReturn(couponAccountBean1).thenReturn(couponAccountBean3);
        Mockito.when(
                operateShopCouponExportService.createOrModifyShopCouponInfoP(
                        paramMap, "2")).thenReturn("XXX");
        Map<String, Object> responseMap = new HashMap<String, Object>();
        responseMap.put("flag", "0");
        Mockito.when(operateShopCouponExportService.send(Mockito.anyString()))
                .thenReturn(responseMap);
        // 调用接口
        operateShopCouponServiceImpl.updatePromotionBaseP(paramMap);
    }
异常测试
    @SuppressWarnings("unchecked")
    @Test(expectedExceptions = MpmsSystemException.class)
    public void insertPromotionInfoRuntimeExceptionTestP() {
        // 构造请求参数
        Map<String, Object> paramMap = Mockito.anyMap();
        paramMap.put("showRegion", "3");
        paramMap.put("baseAmount", "");
        paramMap.put("assignedRole", "03");
        paramMap.put("rewardAmount", 112222);
        paramMap.put("activityTimesLimit", 1000000000);
        paramMap.put("startTime", "2017-04-12");
        // 执行特定方法,构造返回值
        Map<String, Object> newParamMap = new HashMap<String, Object>();
        newParamMap.put("sendFlag", "");
        newParamMap.put("activityCode", "");
        newParamMap.put("excludeProduct", "");
        newParamMap.put("donationFlag", "");
        newParamMap.put("operationType", "");
        newParamMap.put("showRegion", "");
        newParamMap.put("activityStatus", "");
        newParamMap.put("activityType", "");
        Map<String, Object> supplyInfoMap = new HashMap<String, Object>();
        supplyInfoMap.put("supplierType", "C");
        Mockito.when(userInfoService.getSupplyinfoByCode(newParamMap))
                .thenReturn(supplyInfoMap);
        Mockito.when(userInfoService.getSupplyinfoByCode(newParamMap))
                .thenReturn(supplyInfoMap);
        Mockito.doThrow(RuntimeException.class).when(promotionBaseService)
                .savePromotionBaseP((Map[]) Mockito.anyVararg());

        operateShopCouponServiceImpl.insertPromotionInfoP(paramMap);
    }

    @SuppressWarnings("unchecked")
    @Test(dataProvider = "dp1", groups = "exectest")
    public void insertPromotionInfoTest(Map<String, Object> inputMap) {
        // 构造请求参数
        Map<String, Object> paramMap = Mockito.anyMap();
        paramMap.put("showRegion", "1");
        paramMap.put("baseAmount", "1");
        paramMap.put("assignedRole", "03");

        // 执行特定方法,构造返回值
        Map<String, Object> newParamMap = new HashMap<String, Object>();
        newParamMap.put("sendFlag", "");
        newParamMap.put("activityCode", "");
        newParamMap.put("excludeProduct", "");
        newParamMap.put("donationFlag", "");
        newParamMap.put("operationType", "");
        newParamMap.put("showRegion", "");
        newParamMap.put("activityStatus", "");
        newParamMap.put("activityType", "");

        Map<String, Object> supplyInfoMap = new HashMap<String, Object>();
        supplyInfoMap.put("supplierType", "K");
        Mockito.when(userInfoService.getSupplyinfoByCode(newParamMap

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值