美文网首页
4、添加testOption 便于单元测试

4、添加testOption 便于单元测试

作者: 陈桐Caliburn | 来源:发表于2020-04-22 16:34 被阅读0次

gojvm目录
1、搭建go环境
2、cmd命令行参数解析
3、搜索class文件
4、添加testOption 便于单元测试
5、解析classfile文件
6、运行时数据区
7、指令集
8、解释器
9、创建Class
10、类加载器
11、对象实例化new object
12、方法调用和返回
13 类初始化
14、jvm支持数组
15、jvm支持字符串-数组扩展
16、本地方法调用
17、ClassLoader原理
18、异常处理
19、 启动jvm

原因

自己手动写java虚拟机源码,属于章回式讲课。
实际项目,要减少冗余重复代码,让接手的人易于理解
也要有单元测试类,便于项目重构
因此添加testOption

测试参数

增加 -test

type Cmd struct {
    testOption  string  // 指定测试方法
}

func parseCmd() *Cmd {
    //增加测试方法
    flag.StringVar(&cmd.testOption, "test", "", "test")
}

main函数调用
根据cmd.testOption内容判断调用测试方法

func main() {
    cmd := parseCmd()

    if cmd.versionFlag {
        fmt.Println("version 0.0.1")
    } else if cmd.helpFlag || cmd.class == "" {
        printUsage()
    } else if cmd.testOption == "cmd" {
        parseCmdLine(cmd)
    } else if cmd.testOption == "classpath" {
        parseClasspath(cmd)
    } else {
        startJvm(cmd)
    }

}

测试shell脚本

#!/bin/sh
set -ex

cd ./go
export GOPATH=$PWD
#main 编译目录
go run main -version
//测试 命令行功能
go run main -test "cmd" 12 344 567
//测试类查找功能
go run main -test "classpath" java.lang.Object

实战项目地址

https://github.com/yinlingchaoliu/jvmgo.git

相关文章

  • 4、添加testOption 便于单元测试

    gojvm目录1、搭建go环境2、cmd命令行参数解析3、搜索class文件4、添加testOption 便于单元...

  • 手动编写gojvm前言

    gojvm目录1、搭建go环境2、cmd命令行参数解析3、搜索class文件4、添加testOption 便于单元...

  • 18、异常处理

    gojvm目录1、搭建go环境2、cmd命令行参数解析3、搜索class文件4、添加testOption 便于单元...

  • 5、解析classfile文件

    gojvm目录1、搭建go环境2、cmd命令行参数解析3、搜索class文件4、添加testOption 便于单元...

  • 2、cmd命令行参数解析

    gojvm目录1、搭建go环境2、cmd命令行参数解析3、搜索class文件4、添加testOption 便于单元...

  • 3、搜索class文件

    gojvm目录1、搭建go环境2、cmd命令行参数解析3、搜索class文件4、添加testOption 便于单元...

  • 7、指令集

    gojvm目录1、搭建go环境2、cmd命令行参数解析3、搜索class文件4、添加testOption 便于单元...

  • 12、方法调用和返回

    gojvm目录1、搭建go环境2、cmd命令行参数解析3、搜索class文件4、添加testOption 便于单元...

  • 11、对象实例化new object

    gojvm目录1、搭建go环境2、cmd命令行参数解析3、搜索class文件4、添加testOption 便于单元...

  • 6、运行时数据区

    gojvm目录1、搭建go环境2、cmd命令行参数解析3、搜索class文件4、添加testOption 便于单元...

网友评论

      本文标题:4、添加testOption 便于单元测试

      本文链接:https://www.haomeiwen.com/subject/wgxwihtx.html