社区首页

深入理解Mock,Stub

深入理解Mock,Stub前面我们学习了Mock,Stub的一些基础知识,今天我们深入理解一下:我们知道,单元测试最重要的工作就是破除依赖项(break dependency),破除依赖的技巧有好几个,如何使用这些技巧也是我们需要深入研究和学习的。首先需要指出的是破除依赖项的技巧有Mock类和Stub类。为了破除依赖项它们都可以说是伪造相关library界面的假物件,只是用途不一样而已:Stub:
15小时前发布 23分钟阅读

使用@ComponentScan 和过滤器进行类路径扫描

使用@ComponentScan 和过滤器进行类路径扫描简介类路径扫描基本上意味着,检测指定包下需要由 Spring 管理的类。您需要使用带有@Configuration 的spring @ComponentScan 注释进行类路径扫描。此注解允许您指定基本包和过滤器(如果需要精细控制包扫描)。我们将在本文中研究这两种方法。深入看@ComponentScan注解在学习使用这个注解之前,我们先来看看
19小时前发布 12分钟阅读

什么是单元测试

什么是单元测试有没有遇到过类似的情况,当你打算开始写出高质量的代码,为了写出高质量的代码,公司的大牛告诉你,写好单元测试是高质量代码的基石。然后你每次写完功能代码,总是给每个方法写大量的单元测试,然后请教大牛,没想到大牛冷冷的说一句:你写的不是单元测试,它测到别的东西。这时候你的脑袋里会不会像浆糊一样,还有这样说法,单元测试还能测到别的东西?那么我们来思考一个问题,什么是(真正的)单元测试,为什么
1天前发布 6分钟阅读

使用@Primary 和@Qualifier 微调自动装配

使用@Primary 和@Qualifier 微调自动装配简介当我们有多个相同基类类型的 bean 时,按类型自动装配会导致歧义。因为有多个相同类型的 bean,所以控制 bean 选择过程很重要。Spring 提供了 @Primary 注释,它将特定的 bean 声明为主要的,这意味着在自动装配到单值依赖项时,主要 bean 将被赋予更高的首选项。另一方面,Spring 还提供了 @Qualif
2天前发布 28分钟阅读

Spring bean定义继承

Spring bean定义继承在 Spring Framework 中,bean 定义继承(bean 配置继承)是我们必须学习的一个宝贵的省时特性。如您所知,bean 定义只不过是 Spring IoC 容器根据详细信息创建我们的 bean 的配置。这些 bean 定义可以包含很多有用的配置,如构造函数参数、属性值、初始化方法等。1、使用 Bean 定义继承,子 bean 定义从父配置继承配置。2
5天前发布 10分钟阅读

事件集线器

事件集线器我们知道,各种抽象工厂,外观以及其他模式都能在一定程度上解耦依赖和隔离代码。这些方法的使用都是为了更好的编写可测试的代码。今天我们介绍另一种方法,那就是事件的使用。总的来说,所有应用程序都与消息传递有关系,因此很大可能会发生耦合,因为代码必须拿到另一个对象的引用,这样才能给另一个对象发送消息或接收消息。因此这里可能存在两种耦合,一种是全局依赖,另一种是注入对象依赖。从前面的关于耦合的程度
8天前发布 2分钟阅读

依赖注入

依赖注入前面我们介绍了耦合解耦的方法,比如工厂模式解耦,今天我们重点学习依赖注入解耦。首先我们需要理解的是注入和模拟是松散的关系。如果一个对象的依赖项需要注入,而另外一个对象此时负责构建该对象。我们就把问题皮球提到了另外一层?的确如此,皮球必须止于某个地方,而这个地方是应用程序或者测试开始的地方。依赖注入器可以为代码构建和注入完全成型的对象。依赖注入还有一点需要提醒的是作用域的问题,也就是作用域通
10天前发布 6分钟阅读

什么是可测试代码

什么是可测试代码我们理解的可测试代码指的是:1、松耦合2、短小的3、可隔离的我们会依照这三个原则来分析,怎么样编写可测试的代码?一般来说,一个函数或者一个功能,如果越复杂,那么实现此功能需要的代码可能就会越多,代码量就会越多,出现潜在Bug的概率就越大。因此,编写可测试代码的第一步就是让函数或者功能保持最小代码量,而保持最小代码量的方法就是让命令(Command)和查询(Query)分离。我们首先
11天前更新 7分钟阅读

耦合

耦合上一节我们重点关注了扇出的内容,以及用例子说明了如果才能将一个函数或者模块的代码通过重构来达到一个合理的扇出值。今天我们来理解耦合:耦合是关注模块是如何组合在一起的,增加子模块或者可以减少扇出的值,但是不能减少原始模块对最初依赖之间的耦合度。本质是将显示依赖变成了间接依赖。耦合一般有六个级别,它们分别是:1、内容耦合内容耦合是最紧的耦合,包括在外部对象上调用方法或者函数,或通过修改外部对象的属
13天前发布 5分钟阅读

扇出

扇出扇出是测量函数直接或者间接依赖的模块或对象的数量。有一个经验上的代码复杂度计算公式就是:(fan_in * fan_out)的平方一些研究表明:复杂度的值与软件变更有98%的相关性。比如:越复杂的函数或者模块,该函数或者模块就越有可能发生Bug。那么扇出的定义到底是什么呢?过程A的扇出是表示过程A的内部流程数量(指挥别人做的)和过程A所更新的数据结构数量(自己做的)之和。扇出就衡量一个函数做多
14天前发布 14分钟阅读

管理docker容器——深入了解

管理docker容器——深入了解上一节对Docker镜像有了一定的深入理解,这一节我们来学习如何管理Docker容器Docker 容器是另一个重要的概念。容器是镜像的可运行实例。容器是一组独立运行的应用程序。示例可以使用 centos7 + jdk + tomcat + web-app 构建单个容器。它运行的隔离环境称为 docker 运行时。在本页中,将通过示例讨论如何执行 docker run
15天前发布 10分钟阅读

flex表单布局

flex表单布局我们知道,在表单布局的时候,有的时候想对齐的话,我们需要调整元素的外边距margin,内边距padding但是一旦浏览器的视口发生变化或者设备发生变化,往往会产生我们意想不到的效果。要么是错位,要么是不能适应新设备。今天我们就看看用flex怎么来布局表单。我们先看第一个例子,传统的布局<!doctype html> <head> <title&
15天前发布 8分钟阅读

Promise.all()方法

到目前为止,前几章节每个示例都是一次响应一个Promise。但是,有时,需要监控多个 Promise 的进度以确定下一步操作。JavaScript 提供了几种方法来监控多个 Promise,然后用不同的方式响应它们。本章讨论的所有方法都允许并行执行多个 Promise,然后作为一个组而不是用单独一个值响应。Promise.all()方法Promise.all() 方法接受单个参数,该参数是要监控的
17天前更新 7分钟阅读

Spring框架高级介绍

什么是Spring框架这个问题的古老答案是,“Spring 是一个依赖注入框架”。实际上,它远不止于此。Spring 是最流行的 Java 企业应用程序开发框架,它带有许多工具和库来解决 Java 世界中的几乎所有问题。无论是微服务还是简单的数据库驱动的企业应用程序,Spring 都有必要的工具来帮助您入门。目前很难解释 Spring技术栈中可用的所有功能和库,随着您的进步,您将逐渐了解它们。您会
17天前更新 4分钟阅读

什么是控制反转(IOC)

什么是控制反转(IOC)控制反转 (IoC) 和依赖注入 (DI) 是用于解耦类依赖关系的编程模式。在本文中,我们将讨论 Spring Framework 的 IoC 和 DI。为简单起见,假设类 Vehicle 依赖于类 Engine,这意味着没有 Engine 的 Vehicle 没有意义。我们需要确保通过保持代码松散耦合来满足这种依赖关系。所以我们使用一个特殊的类来确保对象的创建以正确的顺序
18天前发布 21分钟阅读

Promise.allSettled()使用场景

Promise.allSettled()使用场景上一节我们介绍了Promise.allSettled()方法的第一种使用场景,今天我们再看看其他使用场景。调用多个独立的 Web 服务 APIPromise.all() 部分的另一个示例是调用多个 Web 服务 API,您希望所有请求都成功。 如果您不需要所有请求都成功,那么您可以使用 Promise.allSettled() 代替。 回到前面的例子
20天前发布 8分钟阅读
数据加载中
X

欢迎加群学习交流