单元测试
今天偶然了解了一个新的知识点,在单元测试的时候,不加载web相关的服务启动,加快启动时间,具体实现方式是使用了@SpringBootTest注解里的一个参数
代码如下:
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE)
用到的参数名为:webEnvironment
作用:用来指定测试环境的类型,控制着应用程序上下文的创建和运行的web环境。
webEnvironment有几个可选类型
public static enum WebEnvironment {
MOCK(false),//默认值,在模拟环境中不会启动真正的selvert容器,而是使用mock
RANDOM_PORT(true),//在web服务器环境中运行测试,并随机选择一个可用的端口来绑定web服务器
DEFINED_PORT(true),//在web服务器环境中运行测试,并使用应用程序默认的端口来绑定web服务器
NONE(false);//在非web服务器环境中测试,不会启动任何服务器,也不会创建servelt环境
private final boolean embedded;
private WebEnvironment(boolean embedded) {
this.embedded = embedded;
}
public boolean isEmbedded() {
return this.embedded;
}
}
Lambda表达式
定义:一种用于创建匿名函数的简洁语法。
基本语法:(parameters) -> expression
重点:lambda可与 函数式接口(Functional Interface) 一起使用。函数式接口是指只定义了一个抽象方法的接口。举例:
@FunctionalInterface
public interface Callable<V> {
/**
* Computes a result, or throws an exception if unable to do so.
*
* @return computed result
* @throws Exception if unable to compute a result
*/
V call() throws Exception;
}
lambda表达式的优点:
- 简洁性:相对于传统的匿名内部类,Lambda更加简洁明了,可以大大减少代码冗余。
- 代码可读性:使代码更紧凑和流畅,提高代码的可读性和理解性。
- 便于并行处理:Lambda可以方便的用于并行处理和多线程的环境中,提高程序的性能和效率。这里可以搭配stream流使用。