当前位置: 首页 > news >正文

Day31:单元测试、项目监控、项目部署、项目总结、常见面试题

单元测试

保证独立性。

image

Assert:断言,一般用来比较是否相等,比如

Assert.assertEquals

在JUnit测试框架中,@BeforeClass,@Before,@After和@AfterClass是四个常用的注解,它们的作用如下:

@BeforeClass:这个注解应用于静态方法,表示这个方法会在所有测试方法之前执行一次。通常用于进行一些耗时的初始化操作,例如连接数据库。

@Before:这个注解应用于方法,表示这个方法会在每个测试方法执行之前执行。通常用于进行一些初始化操作,例如重置某些变量。

@After:这个注解应用于方法,表示这个方法会在每个测试方法执行之后执行。通常用于进行一些清理操作,例如关闭数据库连接。

@AfterClass:这个注解应用于静态方法,表示这个方法会在所有测试方法之后执行一次。通常用于进行一些清理操作,例如释放资源。

这四个注解的执行顺序是:@BeforeClass -> @Before -> 测试方法 -> @After -> @AfterClass。

@RunWith(SpringRunner.class)
@SpringBootTest
@ContextConfiguration(classes = CommunityApplication.class)
public class SpringBootTests {@Autowiredprivate DiscussPostService discussPostService;private DiscussPost data;@BeforeClasspublic static void beforeClass() {System.out.println("beforeClass");}@Beforepublic void before() {// 初始化测试数据System.out.println("before");this.data = new DiscussPost();data.setUserId(111);data.setTitle("test title");data.setContent("Test");data.setCreateTime(new Date());data.setScore(Math.random() * 2000);discussPostService.addDiscussPost(data);}@Afterpublic void after() {// 删除测试数据System.out.println("after");discussPostService.updateStatus(data.getId(), 2);}@AfterClasspublic static void afterClass() {System.out.println("afterClass");}@Testpublic void testFindById() {DiscussPost post = discussPostService.findDiscussPostById(data.getId());//判断data和post是否一致Assert.assertNotNull(post);Assert.assertEquals(data.getTitle(), post.getTitle());Assert.assertEquals(data.getContent(), post.getContent());}@Testpublic void testUpdateScore() {int rows = discussPostService.updateScore(data.getId(), 2000.00);Assert.assertEquals(1, rows);DiscussPost post = discussPostService.findDiscussPostById(data.getId());Assert.assertEquals(2000.00, post.getScore(), 2);}}

执行整个类:

image

项目监控

image

下面演示的使用HTTP进行监控。

导入依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

导入后就默认启用,二十多个端点大多数都启用,只有一个关闭服务器的端点未启用)最好不要启用),但只暴露了两个端点(health和info)

image

配置暴露

除了info和caches端点其余全暴露:

# 暴露所有端点
management.endpoints.web.exposure.include=*
management.endpoints.web.exposure.exclude=info,caches
management.endpoint.health.show-details=always

image

beans:

image

loggers:

image

自定义端点

创建actuator/DatabaseEndPoint类:

@Component
//访问路径:/actuator/database
@Endpoint(id = "database")
public class DatabaseEndpoint {private static final Logger logger = LoggerFactory.getLogger(DatabaseEndpoint.class);//通过连接池获取连接,查询数据库@Autowiredprivate DataSource dataSource;//ReadOperation表示只能通过GET请求访问@ReadOperationpublic String checkConnection() {try (Connection conn = dataSource.getConnection();) {return CommunityUtil.getJsonString(0, "获取连接成功!");} catch (Exception e) {logger.error("获取连接失败!" +  e.getMessage());return CommunityUtil.getJsonString(1, "获取连接失败!");}}}

访问database:

image

添加权限管理

.requestMatchers("/discuss/delete","/data/**","/actuator/**").hasAnyAuthority(AUTHORITY_ADMIN)

项目部署(Deprecated)

本地代码传到云服务器→ 云服务器打包→ 云服务器部署

云服务器内存暂时不够,先跳过。

image

image

项目总结

image

常见面试题(Deprecated)

等到面试在看。

相关文章:

Day31:单元测试、项目监控、项目部署、项目总结、常见面试题

单元测试 保证独立性。 Assert&#xff1a;断言&#xff0c;一般用来比较是否相等&#xff0c;比如 Assert.assertEquals 在JUnit测试框架中&#xff0c;BeforeClass&#xff0c;Before&#xff0c;After和AfterClass是四个常用的注解&#xff0c;它们的作用如下&#xff1a; …...

Flutter笔记:使用Flutter私有类涉及的授权协议问题

Flutter笔记 使用Flutter私有类涉及的授权协议问题 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.cs…...

面试过程种遇到的面试题收集

文章目录 讲一讲这个项目是干什么的&#xff1f;需求规格说明书有哪些章节&#xff1f;职工部门层级如何显示在一张SQL表上&#xff1f;需求开发用到了哪些技术&#xff1f;HashMap 底层数据结构说一下&#xff1f;介绍一下红黑树&#xff1f;HashMap是线程不安全的&#xff0c…...

Vue学习:21.mixins混入

在Vue中&#xff0c;mixins&#xff08;混入&#xff09;是一种用于分发Vue组件中可复用功能的灵活机制。它们允许你抽取组件中的共享功能&#xff0c;如数据、计算属性、方法、生命周期钩子等&#xff0c;并将其作为单独的模块复用到多个组件中。这种方式有助于保持代码的DRY&…...

上传文件到 linux

一、mac 法一&#xff1a;scp 先进入mac的 Node_exporter文件&#xff08;要上传的文件&#xff09;目录下 输入scp -P 端口号 文件名 rootIP:/存放路径 scp -P 22 node_exporter-1.8.0.linux-amd64.tar.gz root192.***.2:/root 法二、 rz mac 安装 lrzsz&#xff0c;然后…...

NEO 学习之session7

文章目录 选项 A&#xff1a;它涉及学习标记数据。 选项 B&#xff1a;它需要预定义的输出标签进行训练。 选项 C&#xff1a;它涉及在未标记的数据中寻找模式和关系。 选项 D&#xff1a;它专注于根据输入-输出对进行预测。 答案&#xff1a;选项 C 描述了无监督学习的本质&am…...

毕业设计uniapp+vue有机农产品商城系统 销售统计图 微信小程序

本人在网上找了一下这方面的数据发现农村中的信心普及率很是低农民们都不是怎么会用手机顶多就是打打电话发发短信&#xff0c;平时不太会上网更不会想到通过网络手段去卖出自己的劳作成果—农产品&#xff0c;这无疑大大浪费了农民的劳动成果和国家资源也大大打击了人们的生产…...

php使用Canal监听msyql

canal需要java8 去官网下载java8 安装JAVA #创建目录 mkdir -p /usr/local/java/ #解压到目录 tar zxvf jdk-8u411-linux-x64.tar.gz -C /usr/local/java/配置环境变量在 /etc/profile 最后加入 export JAVA_HOME/usr/local/java/jdk1.8.0_411 export CLASSPATH.:$JAVA_HOM…...

metabase部署与实践

1. 项目目标 &#xff08;1&#xff09;了解metabase特点 &#xff08;2&#xff09;熟练部署metabase工具 &#xff08;3&#xff09;掌握metabase基本使用 2. 项目准备 2.1. 规划节点 主机名 主机IP 节点规划 metabase 10.0.1.141 metabase 2.2. 基础准备 系统镜…...

nacos v2.2.3 docker简单安装使用

nacos v2.2.3 docker简单安装使用 Nacos 官方文档&#xff1a; https://nacos.io/zh-cn/docs/v2/quickstart/quick-start.html 控制台&#xff1a; http://127.0.0.1:8848/nacos/ 初始用户名、密码&#xff1a; 账号&#xff1a;nacos 密码&#xff1a;nacos 启动docker…...

java设计模式-生成器模式

文章目录 生成器模式&#xff08;Builder&#xff09;1、目的和适用场景2、角色和职责3、实现步骤4、示例15、示例26、优点7、示例场景 生成器模式&#xff08;Builder&#xff09; 生成器模式&#xff08;Builder Pattern&#xff09;是一种创建型设计模式&#xff0c;它用于…...

《前端面试题》- TypeScript - TypeScript的优/缺点

问题 简述TypeScript的优/缺点 答案 优点 增强了代码的可读性和可维护性包容性&#xff0c;js可以直接改成ts&#xff0c;ts编译报错也可以生成js文件&#xff0c;兼容第三方库&#xff0c;即使不是ts编写的社区活跃&#xff0c;完全支持es6 缺点 增加学习成本增加开发成…...

微服务---feign调用服务

目录 Feign简介 Feign的作用 Feign的使用步骤 引入依赖 具体业务逻辑 配置日志 在其它服务中使用接口 接着上一篇博客&#xff0c;我们讲过了nacos的基础使用&#xff0c;知道它是注册服务用的&#xff0c;接下来我们我们思考如果一个服务需要调用另一个服务的接口信息&…...

刷题笔记 - 滑动窗口

文章目录 滑动窗口最长无重复子串最小覆盖子串串联所有单词的子串长度最小的子数组滑动窗口最大值字符串的排列最小区间 滑动窗口 所有题目来自leetcode的回答&#xff1a;https://leetcode.cn/problems/longest-substring-without-repeating-characters/solutions/3982/hua-d…...

Docker搭建LNMP+Wordpress的实验

目录 一、项目的介绍 1、项目需求 2、服务器环境 3、任务需求 二、Linux系统基础镜像 三、部署Nginx 1、建立工作目录 2、编写Dockerfile 3、准备nginx.conf配置文件 4、设置自定义网段和创建镜像和容器 5、启动镜像容器 6、验证nginx 三、Mysql 1、建立工作目录…...

使用Python Pandas实现两表对应列相加(即使表头不同)

目录 引言 Pandas库简介 实现对应列相加 步骤一&#xff1a;加载数据 步骤二&#xff1a;重命名列 步骤三&#xff1a;对应列相加 步骤四&#xff1a;保存结果 案例分析 结论 引言 在数据分析和处理的日常工作中&#xff0c;我们经常会遇到需要将来自不同数据源的数据…...

Linux 虚拟主机切换php版本及参数

我使用的Hostease的Linux虚拟主机产品,由于网站程序需要支持高版本的PHP,程序已经上传到主机&#xff0c;但是没有找到切换PHP以及查看PHP有哪些版本的位置&#xff0c;因此咨询了Hostease的技术支持&#xff0c;寻求帮助了解到可以实现在cPanel面板上找到此切换PHP版本的按钮&…...

Content-Type详解

...

GaussDB数据库SQL系列-复合查询

目录 一、前言 二、复合查询基础 三、实际应用示例 1、使用UNION合并查询结果 2、使用INTERSECT找出共同元素 3、使用EXCEPT排除特定结果 四、高级技巧 1、子查询实例 2、JOIN的应用 五、总结 一、前言 GaussDB是华为自主创新研发的分布式关系型数据库&#xff0c;具…...

【Unity】修改模型透明度

在 Unity 中修改模型透明度主要有两种方法&#xff1a;通过材质和通过着色器。以下是两种方法的步骤和解释&#xff1a; 方法 1&#xff1a;通过材质 在 Unity 编辑器中&#xff0c;选择你想要修改透明度的模型。在 Inspector 窗口中&#xff0c;找到模型的 Renderer 组件&am…...

从 SU01 到 SAP HANA,DBMS 用户管理里的 SSO 选项到底在管什么

项目里讨论 SSO 时,大家很容易把它想成一个单点登录按钮,好像在某处勾选一下,用户就能从 SAP GUI、Fiori、报表工具一路无感访问到数据库。到了 SAP NetWeaver AS 和 SAP HANA 组合的系统里,这个理解会带来不少误会。因为从 ABAP 侧维护 DBMS 用户的 SSO 选项,只是在用户主…...

深入AD9361:除了QPSK和FM,这颗射频芯片在Zynq平台上还能玩出什么花样?

深入AD9361&#xff1a;解锁Zynq平台上的射频创新潜能 当工程师们首次接触AD9361这颗射频芯片时&#xff0c;往往会被其标准应用场景如QPSK调制或FM收音所吸引。然而&#xff0c;这颗高度集成的RF收发器IC的真正价值&#xff0c;在于它为Zynq PSPL架构带来的无限可能性。本文将…...

BilibiliDown终极指南:快速下载B站视频的免费高效方案

BilibiliDown终极指南&#xff1a;快速下载B站视频的免费高效方案 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/b…...

Unity 2D游戏开发:用Cinemachine 2D Camera实现平滑镜头跟随,告别手动写代码

Unity 2D游戏开发&#xff1a;用Cinemachine 2D Camera实现平滑镜头跟随&#xff0c;告别手动写代码 在2D游戏开发中&#xff0c;摄像机跟随是最基础却又最容易出问题的功能之一。很多开发者习惯用代码手动控制摄像机的位置更新&#xff0c;却常常陷入边界抖动、跟随延迟不自然…...

从标准库到HAL库:STM32驱动TFTLCD的代码移植实战

1. 为什么需要从标准库迁移到HAL库&#xff1f; 最近在做一个智能家居控制面板项目时&#xff0c;遇到了一个典型问题&#xff1a;厂家提供的TFTLCD驱动代码是基于标准外设库&#xff08;Standard Peripheral Library&#xff09;开发的&#xff0c;但项目要求使用STM32CubeMX工…...

Code-Captain:一体化开发工作流自动化工具的设计与实践

1. 项目概述&#xff1a;一个为开发者打造的“全能副驾”最近在 GitHub 上看到一个挺有意思的项目&#xff0c;叫devobsessed/code-captain。光看这个名字&#xff0c;你可能会联想到“代码船长”或者“开发指挥官”之类的形象。没错&#xff0c;这个项目的核心定位&#xff0c…...

软考资料全集

距离2026年上半年软考&#xff08;5月开考&#xff09;已不算遥远&#xff0c;现在正是着手准备的好时机。回顾这几年的备考历程&#xff0c;我也曾为找资料花费不少时间。趁着这次整理&#xff0c;我把手头积累的各科目复习资料——全部来自互联网公开渠道——系统地归拢了一下…...

3步掌握小红书内容高效采集:XHS-Downloader完全指南

3步掌握小红书内容高效采集&#xff1a;XHS-Downloader完全指南 【免费下载链接】XHS-Downloader 小红书&#xff08;XiaoHongShu、RedNote&#xff09;链接提取/作品采集工具&#xff1a;提取账号发布、收藏、点赞、专辑作品链接&#xff1b;提取搜索结果作品、用户链接&#…...

0-π量子比特保护机制与受控相位门设计

1. 0-π量子比特的物理实现与保护机制1.1 多模电路编码原理0-π量子比特是一种基于超导电路的多模编码量子比特&#xff0c;其核心设计理念是通过电路中的θ和φ两个非线性耦合模式来实现量子态的编码。这种双模编码结构使其相比传统单模超导量子比特&#xff08;如transmon或f…...

Anthropic 推出面向小企业的 Claude:助力企业 AI 应用,拓展发展可能性

面向小企业推出 Claude2026 年 5 月 13 日&#xff0c;Anthropic 推出 [面向小企业的 Claude]&#xff0c;这是一套含连接器和预运行工作流的解决方案&#xff0c;可将 Claude 集成到小企业依赖的工具中&#xff0c;助小企业主利用 AI 完成待办事项。小企业 AI 应用现状小企业贡…...