junit与testng 分别和mockito 结合使用例子

本文介绍如何利用Mockito和TestNG框架来进行有效的单元测试。通过具体示例展示了如何设置Mock对象,以及如何运行不同的测试用例,包括发送短信和PUSH通知等场景。

pom文件 引入:

<dependency>
    <groupId>org.testng</groupId>
     <artifactId>testng</artifactId>
     <version>6.8.8</version>
     <scope>test</scope>
</dependency>


使用junit:

@RunWith(MockitoJUnitRunner.class)  
public class MockTest {
    
    @Before
    public void init() {
        MockitoAnnotations.initMocks(this);
    }
    
    @InjectMocks
    TestSendService testSendService = new TestSendServiceImpl();
    
    @InjectMocks
    NoticeTSendProxy noticeTSendProxy;
    
    @Test
    public void mockTest() {
        Map<String, String> paramMap = new HashMap<String, String>();
        paramMap.put("source", From.JBP.from());
        noticeTSendProxy.testSendSms(paramMap, getOrderMappingDTO(ChannelStore.SMS.toString(), JBPTestSendCommandType.TEST_SNED_ADVICE_COMMAND,
		"单元测试()", "18512581771"));
//        testSendService.testSend4Jbp(getOrderMappingDTO(ChannelStore.SMS.toString(), JBPTestSendCommandType.TEST_SNED_ADVICE_COMMAND, "单元测试()", "18512581771"));
    }
    
    private OrderMappingDTO getOrderMappingDTO(String channelCode, String orderType, String content, String mobiles) {
        OrderMappingDTO orderMappingDTO = new OrderMappingDTO();
        orderMappingDTO.setChannel(channelCode);
        orderMappingDTO.setOrderType(orderType);
        orderMappingDTO.setSmsContent(content);
        orderMappingDTO.setMobile(mobiles);
        return orderMappingDTO;
    }
}

使用testng:

public class OrderSendServiceTest extends BaseTest {

//    @Autowired
//    TestSendService testSendService;
	 @InjectMocks
	 private TestSendService testSendService;
	 
	 @BeforeClass
	 public void beforeClass() {
	        // 自动将依赖的类注入待测类
	    MockitoAnnotations.initMocks(this);
	 }
    
     @Test
     public void orderSendTest() {
        // Assert.assertNotNull(testSendService, "Create orderSendService instance Fail.");
        
        // 测试发送短信
        testSendService.testSend4Jbp(getOrderMappingDTO(ChannelStore.SMS.toString(),
        		JBPTestSendCommandType.TEST_SNED_ADVICE_COMMAND, "单元测试()", "18512581771"));
   
        // 测试发送PUSH
        testSendService.testSend4Jbp(getOrderMappingDTO(ChannelStore.SMS.toString(), 
        		JBPTestSendCommandType.TEST_SNED_ADVICE_COMMAND, "单元测试()", "18512581771"));
     }
    
   
    /***
     * 待发送的数据
     * @param channelCode
     * @param orderType
     * @param content
     * @param mobiles
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    private OrderMappingDTO getOrderMappingDTO(String channelCode, String orderType, String content, String mobiles) {
        OrderMappingDTO orderMappingDTO = new OrderMappingDTO();
        orderMappingDTO.setChannel(channelCode);
        orderMappingDTO.setOrderType(orderType);
        orderMappingDTO.setSmsContent(content);
        orderMappingDTO.setMobile(mobiles);
        return orderMappingDTO;
    }
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值