知识库 知识库
首页
  • Hyperskill - Java

    • Java basic
    • Java OOP
    • 应知
    • 扩展
    • IO & Stream
    • Error & Exception
    • Algorithm & Data structure
    • Design pattern
    • Web
    • Spring boot
  • 练习题

    • 选择题 & 填空题
    • 代码题
  • Frank - Java与生活 (OOP)

    • 参考资料
    • Java基础
    • OOP上半部分
    • OOP下半部分
  • Frank - Java API进阶

    • Base API
    • Unit Test and main function
  • 学习笔记
  • 学习笔记

    • 数据库
  • Frank - MySQL删库跑路

    • 安装、连接、配置
    • 基本操作——数据库
    • 基本操作——表
    • 基本操作——数据
    • 数据类型
    • 列属性完整性
    • 数据库设计思维
    • 单表查询
    • 多表查询
  • 学习笔记

    • 其它
  • Frank - Linux现代方法

    • 必知
    • 命令
    • 技巧
  • 技术文档
  • Git
  • GitHub技巧
  • 前端
  • Khan Academy - 语法
  • Monthly
  • 阅读
  • Others
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
收藏
  • 标签
  • 归档
GitHub (opens new window)

Jim FuckPPT

Java小学生
首页
  • Hyperskill - Java

    • Java basic
    • Java OOP
    • 应知
    • 扩展
    • IO & Stream
    • Error & Exception
    • Algorithm & Data structure
    • Design pattern
    • Web
    • Spring boot
  • 练习题

    • 选择题 & 填空题
    • 代码题
  • Frank - Java与生活 (OOP)

    • 参考资料
    • Java基础
    • OOP上半部分
    • OOP下半部分
  • Frank - Java API进阶

    • Base API
    • Unit Test and main function
  • 学习笔记
  • 学习笔记

    • 数据库
  • Frank - MySQL删库跑路

    • 安装、连接、配置
    • 基本操作——数据库
    • 基本操作——表
    • 基本操作——数据
    • 数据类型
    • 列属性完整性
    • 数据库设计思维
    • 单表查询
    • 多表查询
  • 学习笔记

    • 其它
  • Frank - Linux现代方法

    • 必知
    • 命令
    • 技巧
  • 技术文档
  • Git
  • GitHub技巧
  • 前端
  • Khan Academy - 语法
  • Monthly
  • 阅读
  • Others
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
收藏
  • 标签
  • 归档
GitHub (opens new window)
  • Hyperskill - Java

  • 练习题

  • Frank - Java与生活

  • Frank - Java API进阶

    • Base API

    • Unit Test and Main function

      • 抛出企业问题,脱离main测试,模块化概念抛出
        • 两个以往的问题
        • 以往的测试方式
        • main 方法不是处理逻辑的地儿
        • 模块化
      • Junit、单元测试的含义和用途
      • Maven repository 获取 JAR
      • 使用JUnit
    • Throwable

  • 学习笔记

  • Java
  • Frank - Java API进阶
  • Unit Test and Main function
Jim
2022-10-22
目录

抛出企业问题,脱离main测试,模块化概念抛出

# 两个以往的问题

  1. 在 main 方法中测试
  2. 将逻辑代码放在 main 方法中

现在,我们应该摒弃这个两个“习惯”。

# 以往的测试方式

在 main 方法中测试

  1. 编写函数(方法)
  2. 在 main 中调用该函数
  3. 肉眼查看输出,检查是否符合预期结果

注意,预期结果是由人工计算的。当预期结果不能由人来计算的时候,怎样验证程序结果是正确的?

我想这个问题的答案很容易就能想到。既然人计算不了了,那就交给代码呗。关键还不是这个。关键是不应该在 main() 中测试。

# main 方法不是处理逻辑的地儿

main 方法就是整个程序的入口,而不是处理逻辑(完成功能)的地儿。

main 方法里面不应该有大量的逻辑性的代码(功能性的代码)。这些逻辑代码应该从 main 中脱离出来变成复用性很强的函数(方法),然后由 main 或其它函数来调用。

你会发现很多nb的框架,main 里边儿就一行代码(比如 runApplication())。

# 模块化

public class Run {
    public static void main(String[] args) {
        run();
    }
    
    public static void sayHello() { System.out.println("Hello!"); }
    
    public static void run() {
    	sayHello();
        
        // ...
        // ...
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

要将代码模块化很不容易,甚至可能遇到很多问题。

注意

但是,遇到问题肯定是你技术学得不行!记住我说的这句话。——Frank

编辑 (opens new window)
上次更新: 2022/12/03, 17:31:39
System
Junit、单元测试的含义和用途

← System Junit、单元测试的含义和用途→

最近更新
01
《挪威的森林》
04-14
02
青钢影
04-14
03
Processing strings
02-18
更多文章>
Theme by Vdoing | Copyright © 2022-2023 Jim Frank | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式