TIP-springboot下单元测试遇到的坑

一般只需在测试类上添加注解@SpringBootTest即可,如果需要测试service和dao方法时@RunWith(SpringRunner.class)就可以正常使用其方法了

@SpringBootTest
@RunWith(SpringRunner.class)
public class PushTest {
    @Value("${push_appkey}")
    private  String pushAppkey;

    @Value("${push_secret}")
    private  String pushSecret;
    @Autowired
    private DeviceMessageService deviceMessageService;
    @Autowired
    private DwMemberMapper memberMapper;
    @Autowired
    private DwOrderExtendMapper dwOrderExtendMapper;
    @Autowired
    private DwOrderMapper orderMapper;

    @Autowired
    private DwOrderExtendMapper orderExtendMapper;
    @Test
    public void pushAlias(){
        Map<String,String>  param = new HashMap<>();
        Map<String,String>  bizParam = new HashMap<>();
        List<String> alias = new ArrayList<>();
        alias.add("6603c62ef10d4f5b907cba1c22296503");
        alias.add("6efecf180c2b41499f4a2bd06232d6c7");
        param.put("alert","别名推送");
        bizParam.put("bizId","53");
        bizParam.put("serviceType","successOrder");
        JpushUtils.jpushIOSAndAndroidByAlias(param,pushAppkey,pushSecret,bizParam,alias);
    }
//
@Test
public void pushDeviceId(){
    Map<String,String>  param = new HashMap<>();
    Map<String,String>  bizParam = new HashMap<>();
    List<String> deviceIds = new ArrayList<>();
    deviceIds.add("18071adc037ebb12fee");
    param.put("alert","设备号推送");
    bizParam.put("id","54");
    bizParam.put("serviceType","successOrder");
    JpushUtils.jpushIOSAndAndroidByDeviceNo(param,pushAppkey,pushSecret,bizParam,deviceIds);
}

    @Test
    public void pushTest(){
        DwOrder dwOrder = orderMapper.selectByPrimaryKey(64);
        Map<String,String> bizParam = new HashMap<>();
        bizParam.put("bizId",dwOrder.getOrderNo());
        bizParam.put("serviceType", BizType.successOrder.name());
        List<String> aliasList = new ArrayList<>();
        DwMember member = memberMapper.selectByPrimaryKey(dwOrder.getUserId());
        DwOrderExtend orderExtend = orderExtendMapper.getByOrderId(dwOrder.getId());
        aliasList.add(member.getAliasName());
        Object[] str  = new Object[4];
        str[0] = dwOrder.getOrderNo();
        str[1] = dwOrder.getProductName();
        str[2] = orderExtend.getOrderQuantity();
        String content = String.format(MessageUtils.getString("U_M_000003"), str);
        deviceMessageService.pushNotification(content,bizParam,aliasList);
        deviceMessageService.sendMessage(dwOrder.getUserId(),BizType.successOrder.name(),
        dwOrder.getOrderNo(),"订单通知",content,Constant.USER_MESSAGE_TYPE_NOTIFICATION);
    }
}
依赖jar
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>
事物回滚

单测类继承AbstractTransactionalJUnit4SpringContextTests就可以不会影响数据库数据

需要注意的:

1.ideaj install项目需要将test跳过,除非集成测试
在这里插入图片描述
也可以在测试方法或测试类上添加@Ignore也可以跳过,不会运行该方法或测试类。
在这里插入图片描述
2.在添加测试类,需要注意的是,在test文件下创建包路径/java/com/***/web与main下的路径保持一致,否则在测试时回报异常。
在这里插入图片描述
包的属性设置
在这里插入图片描述
3.@Suite.SuiteClasses({xx.class,xxx.class})使用该注解可以在测试多个测试类,只需运行一次即可,不用所用类下的方法执行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值