java 单元测试要怎么测才能全面?

@Service
@Slf4j
public class OrderServiceImpl implements IOrderService {
    @Autowired
    private IOrderDao orderDao;

    @Override
    public OrderPO findById(int id) {
        if(id<0){
            return new OrderPO();
        }
        return orderDao.findById(id);
    }

}

上面提供的service层的方法仅供举例和演示

如题,像工作中我们开发好后台的代码以后想要自己进行单元测试,要怎么测才能测得全面呢?像覆盖率这些指标一般是多少才合适?有没有具体的流程或者可以作为指导的东西?

请大神指教或者能否提供相关的博文让我参考下呢?新人在这方面没什么经验呢,感激不尽了!

阅读 1.2k
1 个回答

对于单元测试比较友好的注入方式是 构造方法 或者 setter
然后针对这种测试,不需要依赖spring的测试

  1. 直接 mock OrderDao,然后塞给OrderService
  2. 测试1:用 不小于零的id调用 findById,验证 orderDao 的 findById 没有被调用过
  3. 测试2:mock orderDao,mock findById 方法,返回一个固定对象,用 小于0的id调用 findById,验证 返回值 和 固定的对象相同,验证 orderDao 的findById 被调用过一次
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题