Spring5参考指南
  • 简介
  • 前言
    • 1. “Spring”代表什么
    • 2. Spring和Spring框架的历史
    • 3. 设计哲学
    • 4. 反馈和贡献
    • 5. 开始
  • 核心技术
    • 1. IoC容器
      • 1.1 IoC容器和Beans介绍
      • 1.2 IoC容器概述
      • 1.3 Bean概述
      • 1.4 依赖
      • 1.5 Bean作用域
      • 1.6 自定义Bean
      • 1.7 Bean的继承
      • 1.8 容器扩展点
      • 1.9 基于注解的容器配置
      • 1.10 类路径扫描和托管组件
      • 1.11 使用JSR 330标准注解
      • 1.12 基于Java的容器配置
      • 1.13 环境抽象
      • 1.14 注册LoadTimeWeaver
      • 1.15 ApplicationContext的其他功能
      • 1.16 BeanFactory
    • 2.资源
      • 2.1介绍
      • 2.2资源接口
      • 2.3内置资源实现
      • 2.4ResourceLoader
      • 2.5ResourceLoaderAware接口
      • 2.6资源作为依赖
      • 2.7应用程序上下文和资源路径
    • 3.验证,数据绑定,和类型转换
      • 3.1使用Spring Validator接口
      • 3.2将代码解析为错误消息
      • 3.3bean操作和BeanWrapper
      • 3.4Spring类型转换
      • 3.5Spring字段格式化
      • 3.6配置全局Date和Time格式
      • 3.7Spring验证
    • 4.SpEL Spring表达式语言
      • 4.1求值
      • 4.2bean定义中的表达式
      • 4.3语言引用
    • 5.Spring AOP
      • 5.1什么是AOP
      • 5.1Spring AOP的能力和目标
      • 5.3AOP代理
      • 5.4@AspectJ 支持
      • 5.5基于Schema的AOP支持
      • 5.6选择要使用的AOP声明样式
      • 5.7混合Aspect类型
      • 5.8代理机制
      • 5.9程序创建@AspectJ代理
      • 5.10在Spring应用程序中使用AspectJ
      • 5.11更多资源
    • 6.Spring AOP APIs
      • 6.1Pointcut API
      • 6.2Advice API
      • 6.3Advisor API
      • 6.4使用ProxyFactoryBean来创建AOP代理
      • 6.5简介的代理定义
      • 6.6使用ProxyFactory创建AOP代理
      • 6.7操作被通知的对象
      • 6.8使用auto-proxy功能
      • 6.9使用TargetSource的实现
      • 6.10定义新的Advice Types
    • 7.Null-safety
    • 8.数据缓存和解码器
    • 9.附录
      • 9.1XML Schemas
      • 9.2创建XML Schemas
  • 测试
    • 1.Spring测试介绍
    • 2.单元测试
      • 2.1Mock Objects
      • 2.2单元测试支持类
    • 3.集成测试
      • 3.1概览
      • 3.2集成测试的目的
      • 3.3JDBC测试支持
      • 3.4注解
      • 3.5Spring TestContext框架
      • 3.6Spring MVC测试框架
      • 3.7WebTestClient
    • 4.更多资源
  • 数据访问
    • 1.事务管理
    • 2.DAO支持
    • 3.JDBC
      • 3.1选择JDBC数据库访问方法
      • 3.2包层次结构
      • 3.3使用JDBC核心类控制基本JDBC处理和错误处理
      • 3.4控制数据库连接
      • 3.5JDBC批处理操作
      • 3.6使用SimpleJdbc
      • 3.7将JDBC操作建模为Java对象
      • 3.8参数和数据值处理的常见问题
      • 3.9嵌入式数据库支持
      • 3.10初始化数据源
    • 4.ORM
      • 4.1Spring ORM介绍
      • 4.2ORM集成的一般注意事项
      • 4.3Hibernate
      • 4.4JPA
    • 5.使用Object-XML映射封装XML
  • Web Servlet
    • 1. Spring Web MVC
      • 1.1 DispatcherServlet
      • 1.2 Filters
      • 1.3 Controllers注解
      • 1.4 URI链接
      • 1.5 异步请求
      • 1.6 CORS
      • 1.7 Web Security
      • 1.8 HTTP Caching
      • 1.9 View技术
      • 1.10 MVC配置
      • 1.11 HTTP/2
    • 2. REST客户端
    • 3. 测试
    • 4. WebSockets
      • 4.1 WebSocket介绍
      • 4.2 WebSocket API
      • 4.3 SockJS Fallback
      • 4.4 STOMP
  • Web Reactive
    • 1.Spring WebFlux
      • 1.1 Overview
      • 1.2 Reactive Core
      • 1.3 DispatcherHandler
      • 1.4 Annotated Controllers
      • 1.5 Functional Endpoints
      • 1.6 URI Links
      • 1.7 CORS
      • 1.8 Web Security
      • 1.9 View Technologies
      • 1.10 HTTP Caching
      • 1.11 WebFlux Config
      • 1.12 HTTP/2
    • 2.WebClient
    • 3.WebSockets
    • 4.测试
    • 5.Reactive库
由 GitBook 提供支持
在本页
  • 2.1.1 Environment
  • 2.1.2 JNDI
  • 2.1.3 Servlet API
  • 2.1.4 Spring Web Reactive

这有帮助吗?

  1. 测试
  2. 2.单元测试

2.1Mock Objects

Spring包含许多专门用于模拟的包:

  • Environment

  • JNDI

  • Servlet API

  • Spring Web Reactive

2.1.1 Environment

org.springframework.mock.env包中包含Environment和PropertySource抽象的模拟实现(请参阅Bean定义配置文件和PropertySource抽象)。 MockEnvironment和MockPropertySource对于开发依赖于特定于环境的属性的代码的容器外测试非常有用。

2.1.2 JNDI

org.springframework.mock.jndi包中包含JNDI SPI的实现,你可以使用它为测试套件或独立应用程序设置简单的JNDI环境。 例如,如果JDBC DataSource实例在测试代码中绑定到与Java EE容器中相同的JNDI名称,则可以在测试方案中重用应用程序代码和配置而无需修改。

2.1.3 Servlet API

org.springframework.mock.web包中包含一组全面的Servlet API模拟对象,可用于测试Web上下文,控制器和过滤器。 这些模拟对象的目标是使用Spring的Web MVC框架,并且通常比动态模拟对象(例如EasyMock)或替代Servlet API模拟对象(例如MockObjects)更方便使用。

从Spring Framework 5.0开始,org.springframework.mock.web中的模拟对象基于Servlet 4.0 API。

Spring MVC Test框架以模拟Servlet API对象为基础,为Spring MVC提供集成测试框架。 请参阅Spring MVC测试框架。

2.1.4 Spring Web Reactive

org.springframework.mock.http.server.reactive包中包含用于WebFlux应用程序的ServerHttpRequest和ServerHttpResponse的模拟实现。 org.springframework.mock.web.server包中包含一个依赖于那些模拟请求和响应对象的模拟ServerWebExchange。

MockServerHttpRequest和MockServerHttpResponse都从与服务器特定的实现相同的抽象基类扩展,并与它们共享行为。例如,模拟请求一旦创建就是不可变的,但你可以使用ServerHttpRequest中的mutate()方法创建修改后的实例。

为了使模拟响应正确地实现写入合同并返回写入完成句柄(即Mono ),它默认使用带有cache().then()的Flux,它缓冲数据并使其成为可能。可用于测试中的断言。应用程序可以设置自定义写入功能(例如,测试无限流)。

WebTestClient以模拟请求和响应为基础,为不使用HTTP服务器测试WebFlux应用程序提供支持。客户端还可以用于正在运行的服务器的端到端测试。

上一页2.单元测试下一页2.2单元测试支持类

最后更新于3年前

这有帮助吗?