CodeGym University
学习
课程
任务
调查和小测验
游戏
帮助
提醒时间表
社区
用户
论坛
聊天
文章
成功故事
活动
评论
订阅服务
浅色主题
课程
评论
关于我们
开始
开始学习
立即开始学习
目标地图
课程
全部目标
全部级别
揭示对象的特定行为
模块 3
第 4 级,
课程 4
5.1 verify() 方法 除了创建虚拟对象之外,还经常出现另一个有趣的任务——确保被测类调用正确对象的正确方法。此外,他调用了所需的次数,使用正确的参数等。 为此,Mockito 也有一些神奇之处——方法家族Mockito.verify(…)。指定方法调用检查的一般规则是: Mockito.verify(объект).имяМетода(параметр); 例子: @ExtendWith(MockitoExtension.class)
使用 Mockito 的流行场景
模块 3
第 4 级,
课程 5
6.1 模拟静态方法 mockStatic() 还有一个更重要的一点是静态方法的模拟和验证。“那有什么问题吗?”你问。是的,静态的,但是方法是一样的。你会错的。 还记得我们是从哪里开始学习模拟对象的吗?由于这些对象是通过DynamicProxy. 并且静态方法不绑定任何对象,DynamicProxy不可能通过.拦截对它们的调用。就这样。 但是 Mockito 的创建者也能够在这里躲避 - 他们编写了自己的类加载器,并且在它的帮助下他们能够动态替换类。一项艰巨的工作,但他们仍然
为什么 Java 需要日志
模块 3
第 5 级,
课程 0
1.1 日志介绍 日志是已发生事件的列表。几乎就像一本航海杂志或日记。那么,相应地,记录器是一个可以用来记录的对象。在编程中,习惯上记录几乎所有内容。在 Java 中,一切都是这样,甚至更多。 事实上,Java 程序通常是没有 UI、控制台等的大型服务器应用程序。他们同时处理来自数千个用户的请求,经常会出现各种错误。特别是当不同的线程开始相互干扰时。 而且,事实上,在这种情况下找到很少重现的错误和故障的唯一方法是将每个线程中发生的所有事情写入日志/文件。 大多数情况下,有关调
Java 中的日志历史记录
模块 3
第 5 级,
课程 1
2.1 第一个记录器——log4j 如您所知,日志的历史始于System.err.println()向控制台输出一条记录。它仍然积极用于调试,例如,Intellij IDEA 使用它向控制台显示错误消息。但是这个选项没有任何设置,所以让我们继续。 第一个也是最受欢迎的记录器被称为Log4j. 这是一个很好的、高度可定制的解决方案。由于各种情况,这个决定没有进入 JDK,这极大地扰乱了整个社区。 这个记录器不仅能够记录,它是由程序员为程序员创建的,并允许他们解决与日志记录相关的
事件级别
模块 3
第 5 级,
课程 2
3.1 事件级别列表 日志记录是记录程序运行时发生的任何事件的过程。你作为程序员的职责是запротоколировать все важное,因为那样的话,当production出现奇怪和/或严重的错误时,除了这些日志之外你将一无所有。 如果您掌握了有关错误的所有信息以及所有调用历史记录,那么消除任何错误的速度将快很多倍。但是从这里可以得出一个简单的结论 - 记录一般的一切:所有方法的调用,所有参数的值。 这也不是一个选择——信息太多和太少一样糟糕。我们需要智能日志记录。
设置日志记录级别
模块 3
第 5 级,
课程 3
4.1 日志级别列表 您编写了程序,将其上传到服务器,然后您立即开始有疑问: 如何确保debug()该方法在工作时不起作用production? 日志中的信息太多,是否只留下错误信息? 如何查看应用程序某一部分的详细日志? 当然,日志的创建者几十年前就面临过同样的事情。我不会告诉你这个问题在C语言中是如何解决的,但是在Java语言中却非常漂亮地解决了。 日志在将信息写入. 您可以通过设置日志记录级别非常快速地减少/增加日志的详细信息。下表描述了这些级别: 等级 笔记 1个 全
Log4j 中的日志过滤器
模块 3
第 5 级,
课程 4
5.1 过滤器列表 记录器允许您非常酷地配置消息过滤。为此,他有几十个带有各种参数的过滤器。下表显示了最受欢迎的。 过滤器 描述 1个 突发滤波器 允许您控制给定日志记录级别的每秒消息频率。 2个 复合过滤器 允许您设置多个顺序过滤器。 3个 动态阈值滤波器 如果在日志中找到某些信息,允许您启用详细日志记录。 4个 地图过滤器 允许您从多个参数为过滤器构建复杂的逻辑表达式。 5个 标记过滤器 允许您按标签过滤消息,必须在事件记录期间首先添加标签。 6个 正则过滤器 允许您设置
Log4j 中的附加程序
模块 3
第 5 级,
课程 5
附加程序列表 记录器允许您一次将数据保存到多个文件中。这样的输出数据流被称为appender(来自append)。有很多标准的 appender,所以我们只介绍最流行的: 附加程序 描述 1个 安慰 将数据打印到控制台 2个 文件 将数据输出到文件 3个 每日滚动文件 输出数据到文件,文件被循环覆盖 4个 异步 允许您将数据异步写入另一个附加程序 5个 插座 将数据写入特定套接字 6个 JDBC 使用 JDBC 协议将消息写入数据库 7 JPA 使用 JPA 协议将消息写入数
Log4Shell 漏洞
模块 3
第 5 级,
课程 6
7.1 丑闻 当然,不可能不讲述最近发生的故事——发生在 2021 年底。 美国网络安全和基础设施保护局 (CISA) 表示,该问题Log4Shell是历史上最严重的漏洞之一。是的,我们正在谈论我们最喜欢的图书馆log4j。 我们舒适的小图书馆log4j 和历史上最大的漏洞?感兴趣吗?然后听。 7.2 灾害规模 Log4ShellLunasec 安全专家于 2021 年 12 月 9 日宣布发现了一个严重漏洞(代码 CVE-2021-44228)。Apache Securit
相关项目:测试和日志记录
模块 3
第 5 级,
课程 7
这个程序是对跑马场的模仿 首先,与之前的项目一样,从存储库中创建一个分支:https://github.com/CodeGymCC/hippodrome,然后自己克隆这个分支。 您的任务是添加测试和日志记录。 所需测试列表 在下面的列表中,每个项目都必须作为单独的测试方法来实现。在为测试方法起名字时,尽量简洁,但同时,这样你就可以大致了解它们到底在测试什么。例如,比较这两个测试结果: 在第二种情况下,更难理解什么样的测试没有通过,您将不得不查看日志。 1.马类: 构造器
互联网的发明
模块 3
第 6 级,
课程 0
1.1 HTML 的历史 如今,几乎所有人都使用互联网。阅读文章、使用浏览器、关注链接。他们中只有少数人想知道互联网是何时以及由谁发明的? 这仍然取决于您对互联网的称呼。大多数情况下,外行意味着一回事,而技术人员意味着另一回事。连接世界上最大的数据中心的计算机网络创建于 70 年代。但是普通人可以访问的互联网(浏览器、链接、各种页面)是 90 年代初期一个人发明的。是这样的…… 1990 年代初期,英国人蒂姆·伯纳斯-李 (Tim Berners-Lee)发明了互联网。尽管,
HTML 中的标签
模块 3
第 6 级,
课程 1
2.1 标签介绍 HTML-документов标记基于标签。什么是标签? 标签是在 70 年代发明的,人们可以将服务信息添加到处理这些文档的程序的文档中。 Тег- 这是一个关键(功能)词,最常见的是英文,它被框在尖括号中(更多和更少的字符),这样程序就不会混淆标签和普通的英文单词。 标签还可以包含各种服务信息,这些信息可能对处理文档的程序有用。 带有标签的示例文本:
显示更多
1
...
24
25
26
27
28
...
35
Please enable JavaScript to continue using this application.