Java中网络编程,Junit单元测试详解

news2024/11/28 20:58:06

文章目录

  • 软件结构
    • C/S结构
    • B/S结构
  • 概述
  • 三要素
    • IP (银行的位置)
    • 端口 (银行中某个柜台号)
    • 协议 (填写取款单的规则)
    • TCP通信程序
      • TCP通信原理
      • 客户端发送数据
      • 服务端接收数据
      • 过程图
      • 三次握手
  • Junit单元测试
    • 概述
    • 常见的注解
    • 使用
    • 断言
      • 概述
      • 使用

软件结构

C/S结构

客户端服务端结构
需要开发客户端和服务端,俩端程序(开发成本高)

B/S结构

浏览器服务端结构
浏览器:是由第三方浏览器厂商提供的(不需要开发了)
服务端:需要开发程序

概述

在网络通信协议下,不同计算机上运行的程序,可以进行数据传输

三要素

IP (银行的位置)

互联网协议地址,也称ip地址,是分配给上网设备的数字标签
简单的说就是设备在网络中的唯一标识
常见分类:ipv4,ipv6
Snipaste_2024-04-07_11-25-08.png
Java中的使用
Snipaste_2024-04-07_11-26-17.png

端口 (银行中某个柜台号)

应用程序在设备中的唯一标识
端口号:用两个字节表示的整数值,0~256*256-1
注意:一个端口号只能被一个应用程序使用

协议 (填写取款单的规则)

计算机网络中,连接和通信的规则被称为网络通信协议
UDP协议

  • 用户数据报协议(User Datagram Protocol)
  • UDP是面向无连接的通信协议
    • 速度快,有大小限制,一次最多发送64K,数据不安全,易丢失数据

TCP协议

  • 传输控制协议(Transmission Control Protocol)
  • TCP协议是面向连接的通信协议
    • 速度慢,没有大小限制,数据安全

TCP通信程序

TCP通信原理

TCP通信协议是一种可靠的网络协议,它在通信的俩端各建立一个Socket对象。
通信之前要保证连接已经建立
通过Socket产生IO流来进行网络通信

客户端发送数据

Snipaste_2024-04-07_14-41-37.png

服务端接收数据

Snipaste_2024-04-07_14-42-52.png

过程图

Snipaste_2024-04-07_14-55-29.png

三次握手

Snipaste_2024-04-07_16-41-52.png

Junit单元测试

概述

单元测试就是编写测试代码,可以准确、快速地保证程序的正确性,Junit是Java单元测试的框架

常见的注解

Snipaste_2024-04-07_17-31-14.png

使用

  1. 引入Junit的jar包到模块中
  2. 在需要测试的方法上添加注解

限时测试:@Test(timeout = 1000)
测试这个方法,执行时间超过1秒会被强制停止

断言

概述

预先判断某个条件一定成立,如果条件不成立,直接报错

使用

:::info
//第一个参数表示期望值
//第二个参数表示实际值
// 如果实际值和期望值相同,说明结果正确就测试通过,如果不相同,说明结果是错误的,就会报错
Assert.assertEquals( 期望值, 实际值);
Assert.assertEquals(“异常原因”, 期望值, 实际值);

//例如:
int result = add(100,200);
Assert.assertEquals(300, result);
:::
Assert.assertEquals(期望值,实际值)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1577654.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows深度学习环境----Cuda version 10.2 pytorch3d version 0.3.0

Requirements Python version 3.8.5Pytorch version: pytorch1.6.0 torchvision0.8.2 torchaudio0.7.0 cudatoolkit10.2.89pytorch3d version 0.3.0Cuda version 10.2 感觉readme文件里的不适配,跟pytorch官网不同 以前的 PyTorch 版本 |PyTorch的 # CUDA 10.2 c…

HDLbits 刷题 --Popcount255

A "population count" circuit counts the number of 1s in an input vector. Build a population count circuit for a 255-bit input vector. 译: 一个“population count”电路用于计算输入向量中1的数量。为一个255位的输入向量构建一个人口计数电路…

【免费使用AI工具】国内AI网站集合

文章目录 文心一言腾讯混元助手讯飞星火认知大模型:文心一格(绘图)云雀大模型(文本对话)智谱AI:(GLM大模型)百川智能(百川大模型)MiniMax(ABAB大模型)万维天工ChatGPT3.5镜像网站通义千问文心一言 https://yiyan.baidu.com/ 腾讯混元助手 微信搜索【腾讯混元助手】小…

金蝶BI方案的报表,主打做得快、易理解

金蝶做数据分析报表慢、步骤多、数据不够直观?但奥威-金蝶BI方案的报表就不一样了,不仅做得快,还十分好理解,因为它做出来的是随时可以按需自助的BI智能数据可视化分析报表。 有多快? 注册奥威BI SaaS平台&#xff0…

提升Python网络编程效率:深入学习furl库

🍀 前言 博客地址: CSDN:https://blog.csdn.net/powerbiubiu 👋 简介 furl 是一个 Python 库,用于处理 URL。它提供了一个简洁而强大的接口,用于构建、解析和操作 URL。本文章介绍下 furl 库的使用。 &a…

01 _ 分布式缘何而起:从单兵,到游击队,到集团军

这里先来聊聊什么是分布式。 与其直接用些抽象、晦涩的技术名词去给分布式下一个定义,还不如从理解分布式的发展驱动因素开始,我们一起去探寻它的本质,自然而然地也就清楚它的定义了。 这里将介绍分布式的起源,是如何从单台计算…

申请专利有用吗 好处

申请专利:一项值得考虑的策略 随着科技的快速发展和市场竞争的日益激烈,创新成为了企业或个人取得竞争优势的关键。在这样的背景下,申请专利成为了许多创新者保护自己创意和技术的重要手段。 申请专利真的有用吗? 申请专利可以…

Golang学习笔记

Golang学习笔记 安装Golang 来源:linux 安装 golang - 知乎 (zhihu.com) 由于我用的是linux系统,所以本文采用linux的安装方式介绍,如果你使用的是Windows/Mac 也可以看下该文章,或者自己去下列地址进行操作。 Download and in…

python--面向对象的三大特征---封装、继承、多态

1.封装: 1,在面向对象中,封装指的是一种安全机制,不让外界修改或者直接操作,将属性私有化; 如果要访问属性,提供公开的方法(getter,setter) 2. python的类如…

【Mybatis】Mybatis 二级缓存全详解教程

【Mybatis-Plus】Mybatis-Plus 二级缓存全详解 一,Mybatis-Plus介绍 MyBatis-Plus(简称MP)是一个基于 MyBatis 的增强工具,它简化了 MyBatis 的开发,并且提供了许多便利的功能,帮助开发者更高效地进行持久…

基于java+springboot+vue实现的健身房管理系统(文末源码+Lw)23-223

摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装健身房管理系统软件来发挥其高效地信息处理的作用&#xf…

如何实现无感刷新(附前后端实现)?

无感刷新的核心思路: 无感刷新机制的目的是在用户不知情的情况下,自动更新其认证令牌(通常是Access Token),以保证用户的会话不会中断。这通常涉及到两种类型的令牌: Access Token:它是用户进行…

C++:if语句(20)

介绍 c最基本的三种程序运行模式为:顺序执行,判断执行,循环执行 顺序执行:前面我们的代码都是从上往下,依次执行的,这就是按顺序依次执行 判断执行:通过我们写的判断条件,去判断要不…

算法:完全背包问题dp

文章目录 一、完全背包问题的特征二、定义状态三、状态转移四、降维优化五、参考例题5.1、Acwing:3.完全背包问题5.2、Acwing:900. 整数划分 一、完全背包问题的特征 完全背包问题是动态规划中的一种经典问题,它的主要特征可以总结如下&…

重学SpringBoot3-事件与监听器

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-事件与监听器 事件和监听器的基本概念Spring Boot中的事件类型1. ApplicationStartingEvent2. ApplicationEnvironmentPreparedEvent3. ApplicationCont…

【InternLM 实战营第二期笔记】使用茴香豆搭建你的RAG智能助理

RAG RAG是什么 RAG(Retrieval Augmented Generation)技术,通过检索与用户输入相关的信息片段,并结合外部知识库来生成更准确、更丰富的回答。解决 LLMs 在处理知识密集型任务时可能遇到的挑战, 如幻觉、知识过时和缺乏透明、可追…

2024年阿里云优惠券(代金券)在哪里领取?

阿里云作为国内领先的云计算服务提供商,不仅提供了稳定、高效的云服务,还时常推出各种优惠活动,以此来吸引用户上云。其中,阿里云优惠券就是一种常见的优惠方式。那么,在2024年,我们该如何领取阿里云优惠券…

在自定义数据集上微调 YOLOv9 模型

在自定义数据集上微调 YOLOv9模型可以显着提高目标检测性能,但这种改进有多显着呢?在这次全面的探索中,YOLOv9在SkyFusion数据集上进行了微调,分为三个不同的类别:飞机、船舶和车辆。通过一系列广泛的实验,包括修改学习率、图像大小和战略性冻结主干网,已经实现了令人印…

5. python练习题5-存款、收益率计算

5. python练习题5-存款、收益率计算 【目录】 文章目录 5. python练习题5-存款、收益率计算1. 目标任务2. 解题思路3. 知识回顾3.1 Python赋值运算符3.2 列表的append函数3.3 round()函数—保留小数点位数3.4 f格式化字符串3.5 列表求和方法 4. 程序代码4.1 使用循环结构实现4…

【强化学习的数学原理-赵世钰】课程笔记(二)贝尔曼公式

【强化学习的数学原理-赵世钰】课程笔记(二)贝尔曼公式 一. 内容概述 1. 第二章主要有两个内容 (1)一个核心概念:状态值(state value):从一个状态出发,沿着一个策略我…