今天是我参加青训营的第二天
单元测试二三事
什么是幂等?
第一次听说幂等这个名词,不太明白幂等是什么意思,老师又说了很多遍,搜了一下幂等在开发中的概念。 在开发中的幂等,简单来说对于同一个系统,在同样条件下,一次请求和多次请求对资源的影响是一致的,就称为该操作是幂等的。比如说有一个接口是幂等的,当传入相同条件时,其效果必须是相同的。 这对于现在分布式系统非常重要,因为接口互相调用的时候,很容易出现由于网络错误等原因,导致调用的时候出现异常,需要重试,因此必须保证接口的幂等性,否则结果将与上一次调用的结果不同。
什么是mock呢
后面这一章的知识点有点晦涩了,但是勇敢牛牛不怕困难。我们再来深入了解一下mock测试。
什么是mock测试?
mock测试就是在测试活动中对于某些不容易构造或者不容易获取的比较复杂的数据场景,用一个虚拟的对象来创建用于测试的测试方法。
举个小小的例子,在当下采用前后端分离模式开发外部应用的时候,我们有一个不成文的规则是项目开发后端先行,但是作为前端工程师的我们难道只能等待后端的接口吗,其实并不用,我们只需要同后端的工程师上亿豪接口返回的数据格式,我们就可以进行并行开发,这边就可以用mock生成一个替身,杜撰一个数据来模拟接口,然后让前后端并行开发,提高我们的开发效率。
关于单例模式
单例模式又是一个第一次听到的名词。什么是单例模式呢?单例模式就是指在内存中只会创建并且仅创建一次对象的设计模式。如果在程序中需要多次使用同一个对象,而且作用相同的时候,为了防止内存占用,只要创建一个对象,让所有需要调用的地方都共享这一个对象就可以了。创建单例模式有两种类型,第一种类型是在真正需要使用对象的时候创造一个,另外是在类加载的时候就已经创造好了,等待程序被使用。但是第一种算法明显是不安全的,如果我们在多线程的情况下使用单例模式的话,无法确定是否只有一个线程创立出来,否则就会出现安全问题,想解决这个问题很简单,用上面视频中介绍的给他加锁就可以了,可以写一个if查询一下已经实例化了吗?如果已经实例化就不需要加锁,如果还没实例化的话,就在实例化它的同时加一个锁。这样既节省了内存,又可以完整的实现我们想要的效果。