Documentation
¶
Overview ¶
Package mocker 定义了 mock 的外层用户使用 API 定义, 包括函数、方法、接口、未导出函数(或方法的)的 Mocker 的实现。 当前文件实现了 Mocker 接口各实现类的构造链创建,以便通过链式构造一个 Mocker 对象。
Package mocker 定义了 mock 的外层用户使用 API 定义, 包括函数、方法、接口、未导出函数(或方法的)的 Mocker 的实现。 当前文件实现了当对同一方法或函数名进行重复构造时可以沿用缓存中已建好的 Mocker, 以防止在一个单测内重复构造 Mocker 时, 对上一个相同函数或方法的 Mocker 的内容规则造成覆盖。
Package mocker 定义了 mock 的外层用户使用 API 定义, 包括函数、方法、接口、未导出函数(或方法的)的 Mocker 的实现。 当前文件实现了 mock 守卫能力, 不同类型的 Mocker 具备不一样的 Apply、Cancel 具体行为,本 MockGuard 抽象了统一各类 Mocker 的 Guard, 以供 BaseMocker 使用其接口类 MockGuard 的 Apply、Cancel 方法。
Package mocker 定义了 mock 的外层用户使用 API 定义, 包括函数、方法、接口、未导出函数(或方法的)的 Mocker 的实现。 当前文件实现了接口 mock 的能力。
Package mocker 定义了 mock 的外层用户使用 API 定义, 包括函数、方法、接口、未导出函数(或方法的)的 Mocker 的实现。 当前文件定义了函数、方法、未导出函数(或方法)的 Mocker 的行为。
Package mocker 定义了 mock 的外层用户使用 API 定义, 包括函数、方法、接口、未导出函数(或方法的)的 Mocker 的实现。 当前文件汇聚了公共的工具类,比如类型转换。
Package mocker 定义了 mock 的外层用户使用 API 定义, 包括函数、方法、接口、未导出函数(或方法的)的 Mocker 的实现。 当前文件实现了按照参数条件进行匹配, 返回对应的 mock return 值, 支持了 mocker.When(XXX).Return(YYY)的高效匹配。
Index ¶
- func CloseDebug()
- func CloseTrace()
- func OpenDebug()
- func OpenTrace()
- type AlwaysMatcher
- type BaseMatcher
- type Builder
- func (b *Builder) ExportFunc(name string) *UnexportedFuncMocker
- func (b *Builder) ExportStruct(name string) *CachedUnexportedMethodMocker
- func (b *Builder) Func(funcDef interface{}) *DefMocker
- func (b *Builder) Interface(iFace interface{}) *CachedInterfaceMocker
- func (b *Builder) Pkg(name string) *Builder
- func (b *Builder) PkgName() string
- func (b *Builder) Reset() *Builder
- func (b *Builder) Struct(instance interface{}) *CachedMethodMocker
- func (b *Builder) UnExportedVar(path string) UnExportedVarMock
- func (b *Builder) Var(v interface{}) VarMock
- type CachedInterfaceMocker
- type CachedMethodMocker
- type CachedUnexportedMethodMocker
- type ContainsMatcher
- type DefMocker
- func (m *DefMocker) Apply(callback interface{})
- func (m DefMocker) Cancel()
- func (m DefMocker) Canceled() bool
- func (m *DefMocker) Origin(originFunc interface{}) ExportedMocker
- func (m *DefMocker) Return(value ...interface{}) *When
- func (m *DefMocker) Returns(values ...interface{}) *When
- func (m *DefMocker) String() string
- func (m *DefMocker) When(specArg ...interface{}) *When
- type DefaultInterfaceMocker
- func (m *DefaultInterfaceMocker) Apply(callback interface{})
- func (m *DefaultInterfaceMocker) As(aFunc interface{}) InterfaceMocker
- func (m DefaultInterfaceMocker) Cancel()
- func (m DefaultInterfaceMocker) Canceled() bool
- func (m *DefaultInterfaceMocker) Inject(interface{}) InterfaceMocker
- func (m *DefaultInterfaceMocker) Method(name string) InterfaceMocker
- func (m *DefaultInterfaceMocker) Origin(interface{}) ExportedMocker
- func (m *DefaultInterfaceMocker) Return(value ...interface{}) *When
- func (m *DefaultInterfaceMocker) Returns(values ...interface{}) *When
- func (m *DefaultInterfaceMocker) String() string
- func (m *DefaultInterfaceMocker) When(specArg ...interface{}) *When
- type DefaultMatcher
- type EmptyMatch
- type ExportedMocker
- type IContext
- type InterfaceMocker
- type Matcher
- type MethodMocker
- func (m *MethodMocker) Apply(callback interface{})
- func (m MethodMocker) Cancel()
- func (m MethodMocker) Canceled() bool
- func (m *MethodMocker) ExportMethod(name string) UnExportedMocker
- func (m *MethodMocker) Method(name string) ExportedMocker
- func (m *MethodMocker) Origin(originFunc interface{}) ExportedMocker
- func (m *MethodMocker) Return(value ...interface{}) *When
- func (m *MethodMocker) Returns(values ...interface{}) *When
- func (m *MethodMocker) String() string
- func (m *MethodMocker) When(specArg ...interface{}) *When
- type MockGuard
- type Mocker
- type UnExportedMocker
- type UnExportedVarMock
- type UnexportedFuncMocker
- func (m *UnexportedFuncMocker) Apply(callback interface{})
- func (m *UnexportedFuncMocker) As(funcDef interface{}) ExportedMocker
- func (m UnexportedFuncMocker) Cancel()
- func (m UnexportedFuncMocker) Canceled() bool
- func (m *UnexportedFuncMocker) Origin(originFunc interface{}) UnExportedMocker
- func (m *UnexportedFuncMocker) String() string
- type UnexportedMethodMocker
- func (m *UnexportedMethodMocker) Apply(callback interface{})
- func (m *UnexportedMethodMocker) As(aFunc interface{}) ExportedMocker
- func (m UnexportedMethodMocker) Cancel()
- func (m UnexportedMethodMocker) Canceled() bool
- func (m *UnexportedMethodMocker) Method(name string) UnExportedMocker
- func (m *UnexportedMethodMocker) Origin(originFunc interface{}) UnExportedMocker
- func (m *UnexportedMethodMocker) String() string
- type VarMock
- type When
- func (w *When) AndReturn(value ...interface{}) *When
- func (w *When) Eval(args ...interface{}) []interface{}
- func (w *When) In(specArgsOrExprs ...interface{}) *When
- func (w *When) Matches(argAndRet ...arg.Pair) *When
- func (w *When) Return(value ...interface{}) *When
- func (w *When) Returns(values ...interface{}) *When
- func (w *When) When(specArgOrExpr ...interface{}) *When
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type BaseMatcher ¶
type BaseMatcher struct {
// contains filtered or unexported fields
}
BaseMatcher 参数匹配基类
func (*BaseMatcher) AddResult ¶
func (c *BaseMatcher) AddResult(results []interface{})
AddResult 添加结果
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder Mock 构建器, 负责创建一个链式构造器.
func New ¶ added in v1.0.3
func New() *Builder
New 创建 Mock 构建器, 和Create()函数目的是相同的 非线程安全的,不能在多协程中并发地 mock 或 reset 同一个函数
func (*Builder) ExportFunc ¶
func (b *Builder) ExportFunc(name string) *UnexportedFuncMocker
ExportFunc 导出私有函数 比如需要 mock 函数 foo(), 则 name="pkg_name.foo" 比如需要 mock 方法, pkg_name.(*struct_name).method_name name string foo 或者(*struct_name).method_name
func (*Builder) ExportStruct ¶
func (b *Builder) ExportStruct(name string) *CachedUnexportedMethodMocker
ExportStruct 导出私有结构体 比如需要 mock 结构体函数 (*conn).Write(b []byte),则 name="conn"
func (*Builder) Interface ¶
func (b *Builder) Interface(iFace interface{}) *CachedInterfaceMocker
Interface 指定接口类型的变量定义 iFace 必须是指针类型, 比如 i 为 interface 类型变量, iFace 传递&i
func (*Builder) Pkg ¶
Pkg 指定包名,当前包无需指定 对于跨包目录的私有函数的 mock 通常都是因为代码设计可能有问题, 此功能会在未来版本中移除 后续仅支持同包下的未导出方法的 mock Deprecated: 对于跨包目录的私有函数的 mock 通常都是因为代码设计可能有问题
func (*Builder) Struct ¶
func (b *Builder) Struct(instance interface{}) *CachedMethodMocker
Struct 指定结构体实例 比如需要 mock 结构体函数 (*conn).Write(b []byte),则 name="conn"
func (*Builder) UnExportedVar ¶ added in v1.0.5
func (b *Builder) UnExportedVar(path string) UnExportedVarMock
UnExportedVar 未导出变量 mock path 变量路径, package + name 组成, 比如 "github.com/xxx/yyy.varName" 变量类型支持:
比如int类型,比如0, map类型比如: map[string]int{} 结构体类型比如: struct A{} 指针类型比如: &struct A{}
Set(value)时, value类型必须和变量原值的类型一致,否则会出现不可预测的异常行为
type CachedInterfaceMocker ¶
type CachedInterfaceMocker struct { *DefaultInterfaceMocker // contains filtered or unexported fields }
CachedInterfaceMocker 带缓存的 Interface Mocker
func NewCachedInterfaceMocker ¶
func NewCachedInterfaceMocker(interfaceMocker *DefaultInterfaceMocker) *CachedInterfaceMocker
NewCachedInterfaceMocker 创建新的带缓存的 Interface Mocker
func (*CachedInterfaceMocker) Canceled ¶
func (m *CachedInterfaceMocker) Canceled() bool
Canceled 是否取消了 mock
func (*CachedInterfaceMocker) Method ¶
func (m *CachedInterfaceMocker) Method(name string) InterfaceMocker
Method 指定方法名
func (*CachedInterfaceMocker) String ¶
func (m *CachedInterfaceMocker) String() string
String mock 的名称或描述
type CachedMethodMocker ¶
type CachedMethodMocker struct { *MethodMocker // contains filtered or unexported fields }
CachedMethodMocker 带缓存的方法 Mocker,将同一个函数或方法的 Mocker 进行 cache
func NewCachedMethodMocker ¶
func NewCachedMethodMocker(m *MethodMocker) *CachedMethodMocker
NewCachedMethodMocker 创建新的带缓存的方法 Mocker
func (*CachedMethodMocker) ExportMethod ¶
func (m *CachedMethodMocker) ExportMethod(name string) UnExportedMocker
ExportMethod 导出私有方法
func (*CachedMethodMocker) Method ¶
func (m *CachedMethodMocker) Method(name string) ExportedMocker
Method 设置结构体的方法名
type CachedUnexportedMethodMocker ¶
type CachedUnexportedMethodMocker struct { *UnexportedMethodMocker // contains filtered or unexported fields }
CachedUnexportedMethodMocker 带缓存的未导出方法 Mocker
func NewCachedUnexportedMethodMocker ¶
func NewCachedUnexportedMethodMocker(m *UnexportedMethodMocker) *CachedUnexportedMethodMocker
NewCachedUnexportedMethodMocker 创建新的带缓存的未导出方法 Mocker
func (*CachedUnexportedMethodMocker) Cancel ¶
func (m *CachedUnexportedMethodMocker) Cancel()
Cancel 清除 mock
func (CachedUnexportedMethodMocker) Canceled ¶
func (m CachedUnexportedMethodMocker) Canceled() bool
Canceled 是否被取消
func (*CachedUnexportedMethodMocker) Method ¶
func (m *CachedUnexportedMethodMocker) Method(name string) UnExportedMocker
Method 设置结构体的方法名
func (*CachedUnexportedMethodMocker) String ¶
func (m *CachedUnexportedMethodMocker) String() string
String mock 的名称或描述
type ContainsMatcher ¶
type ContainsMatcher struct { *BaseMatcher // contains filtered or unexported fields }
ContainsMatcher 包含类型的参数匹配 当参数为多个时, In 的每个条件各使用一个数组表示: .In([]interface{}{3, Any()}, []interface{}{4, Any()})
type DefMocker ¶
type DefMocker struct {
// contains filtered or unexported fields
}
DefMocker 对函数或方法进行 mock,使用函数定义筛选
func NewDefMocker ¶
NewDefMocker 创建 DefMocker pkgName 包路径 funcDef 函数变量定义
func (*DefMocker) Origin ¶
func (m *DefMocker) Origin(originFunc interface{}) ExportedMocker
Origin 调用原函数 origin 需要和原函数的参数列表保持一致
type DefaultInterfaceMocker ¶
type DefaultInterfaceMocker struct {
// contains filtered or unexported fields
}
DefaultInterfaceMocker 默认接口 Mocker
func NewDefaultInterfaceMocker ¶
func NewDefaultInterfaceMocker(pkgName string, iFace interface{}, ctx *iface.IContext) *DefaultInterfaceMocker
NewDefaultInterfaceMocker 创建默认接口 Mocker pkgName 包路径 iFace 接口变量定义
func (*DefaultInterfaceMocker) Apply ¶
func (m *DefaultInterfaceMocker) Apply(callback interface{})
Apply 应用接口方法 mock 为实际的接收体方法 callback 函数的第一个参数必须为*mocker.IContext, 作用是指定接口实现的接收体; 后续的参数原样照抄。
func (*DefaultInterfaceMocker) As ¶
func (m *DefaultInterfaceMocker) As(aFunc interface{}) InterfaceMocker
As 将接口方法 mock 为实际的接收体方法 aFunc 函数的第一个参数必须为*mocker.IContext, 作用是指定接口实现的接收体; 后续的参数原样照抄。
func (DefaultInterfaceMocker) Canceled ¶
func (m DefaultInterfaceMocker) Canceled() bool
Canceled 是否被取消
func (*DefaultInterfaceMocker) Inject ¶
func (m *DefaultInterfaceMocker) Inject(interface{}) InterfaceMocker
Inject 回调原函数(暂时不支持)
func (*DefaultInterfaceMocker) Method ¶
func (m *DefaultInterfaceMocker) Method(name string) InterfaceMocker
Method 指定 mock 的方法名
func (*DefaultInterfaceMocker) Origin ¶
func (m *DefaultInterfaceMocker) Origin(interface{}) ExportedMocker
Origin 回调原函数(暂时不支持)
func (*DefaultInterfaceMocker) Return ¶
func (m *DefaultInterfaceMocker) Return(value ...interface{}) *When
Return 指定返回值
func (*DefaultInterfaceMocker) Returns ¶
func (m *DefaultInterfaceMocker) Returns(values ...interface{}) *When
Returns 指定返回多个值
func (*DefaultInterfaceMocker) String ¶
func (m *DefaultInterfaceMocker) String() string
String 接口 Mock 名称
func (*DefaultInterfaceMocker) When ¶
func (m *DefaultInterfaceMocker) When(specArg ...interface{}) *When
When 执行参数匹配时的返回值
type DefaultMatcher ¶
type DefaultMatcher struct { *BaseMatcher // contains filtered or unexported fields }
DefaultMatcher 参数匹配 入参个数必须和函数或方法参数个数一致, 比如: When(
In(3, 4), // 第一个参数是 In Any()) // 第二个参数是 Any
type ExportedMocker ¶
type ExportedMocker interface { Mocker // When 指定条件匹配 When(specArg ...interface{}) *When // Return 执行返回值 Return(value ...interface{}) *When // Returns 依次按顺序返回值, 如果是多参可使用[]interface{} Returns(values ...interface{}) *When // Origin 指定 Mock 之后的原函数, origin 签名和 mock 的函数一致 Origin(originFunc interface{}) ExportedMocker }
ExportedMocker 导出函数 mock 接口
type IContext ¶
type IContext struct { // Data 可以传递任意数据 Data interface{} // contains filtered or unexported fields }
IContext 接口 mock 的接收体 和 internal/proxy.IContext 保持同步
type InterfaceMocker ¶
type InterfaceMocker interface { ExportedMocker // Method 指定接口方法 Method(name string) InterfaceMocker // As 将接口方法应用为函数类型 // As 调用之后,请使用 Return 或 When API 的方式来指定 mock 返回。 // aFunc 函数的第一个参数必须为*mocker.IContext, 作用是指定接口实现的接收体; 后续的参数原样照抄。 As(aFunc interface{}) InterfaceMocker // Inject 将 mock 设置到变量 Inject(iFace interface{}) InterfaceMocker }
InterfaceMocker 接口 Mock 通过生成和替代接口变量实现 Mock
type Matcher ¶
type Matcher interface { // Match 匹配执行方法 Match(args []reflect.Value) bool // Result 匹配成功返回的结果 Result() []reflect.Value // AddResult 添加返回结果 AddResult([]interface{}) }
Matcher 参数匹配接口
type MethodMocker ¶
type MethodMocker struct {
// contains filtered or unexported fields
}
MethodMocker 对结构体函数或方法进行 mock 能支持到私有函数、私有类型的方法的 Mock
func NewMethodMocker ¶
func NewMethodMocker(pkgName string, structDef interface{}) *MethodMocker
NewMethodMocker 创建 MethodMocker pkgName 包路径 structDef 结构体变量定义, 不能为 nil
func (*MethodMocker) Apply ¶
func (m *MethodMocker) Apply(callback interface{})
Apply 指定 mock 执行的回调函数 mock 回调函数, 需要和 mock 模板函数的签名保持一致 方法的参数签名写法比如: func(s *Struct, arg1, arg2 type), 其中第一个参数必须是接收体类型
func (*MethodMocker) ExportMethod ¶
func (m *MethodMocker) ExportMethod(name string) UnExportedMocker
ExportMethod 导出私有方法
func (*MethodMocker) Method ¶
func (m *MethodMocker) Method(name string) ExportedMocker
Method 设置结构体的方法名
func (*MethodMocker) Origin ¶
func (m *MethodMocker) Origin(originFunc interface{}) ExportedMocker
Origin 指定调用的原函数
func (*MethodMocker) Return ¶
func (m *MethodMocker) Return(value ...interface{}) *When
Return 指定返回值
func (*MethodMocker) Returns ¶
func (m *MethodMocker) Returns(values ...interface{}) *When
Returns 依次按顺序返回值
type MockGuard ¶
type MockGuard interface { // Apply 应用 Mock Apply() // Cancel 取消 Mock Cancel() }
MockGuard Mock 守卫 负责 Mock 应用和取消
type Mocker ¶
type Mocker interface { // Apply 代理方法实现 // 注意: Apply 会覆盖之前设定的 When 条件和 Return // 注意: 不支持在多个协程中并发地 Apply 不同的 imp 函数 Apply(callback interface{}) // Cancel 取消代理 Cancel() // Canceled 是否已经被取消 Canceled() bool // String mock 的名称或描述, 方便调试和问题排查 String() string }
Mocker mock 接口, 所有类型(函数、方法、未导出函数、接口等)的 Mocker 的抽象
type UnExportedMocker ¶
type UnExportedMocker interface { Mocker // As 将未导出函数(或方法)转换为导出函数(或方法) // As 调用之后,请使用 Return 或 When API 的方式来指定 mock 返回。 As(aFunc interface{}) ExportedMocker // Origin 指定 Mock 之后的原函数, origin 签名和 mock 的函数一致 Origin(originFunc interface{}) UnExportedMocker }
UnExportedMocker 未导出函数 mock 接口
type UnExportedVarMock ¶ added in v1.0.5
type UnExportedVarMock interface { Mocker VarMock // Set 设置变量值, val 类型必须和变量指针指向的值的类型一致 Set(val interface{}) }
UnExportedVarMock 未导出变量 mock
func NewUnExportedVarMocker ¶ added in v1.0.5
func NewUnExportedVarMocker(path string) UnExportedVarMock
NewUnExportedVarMocker 创建 UnExportedVarMock path 变量路径, package + name 组成, 比如 "github.com/xxx/yyy.varName"
type UnexportedFuncMocker ¶
type UnexportedFuncMocker struct {
// contains filtered or unexported fields
}
UnexportedFuncMocker 对函数或方法进行 mock 能支持到私有函数、私有类型的方法的 Mock
func NewUnexportedFuncMocker ¶
func NewUnexportedFuncMocker(pkgName, funcName string) *UnexportedFuncMocker
NewUnexportedFuncMocker 创建未导出函数 Mocker pkgName 包路径 funcName 函数名称
func (*UnexportedFuncMocker) Apply ¶
func (m *UnexportedFuncMocker) Apply(callback interface{})
Apply 指定 mock 执行的回调函数 mock 回调函数, 需要和 mock 模板函数的签名保持一致 方法的参数签名写法比如: func(s *Struct, arg1, arg2 type), 其中第一个参数必须是接收体类型
func (*UnexportedFuncMocker) As ¶
func (m *UnexportedFuncMocker) As(funcDef interface{}) ExportedMocker
As 将未导出函数(或方法)转换为导出函数(或方法)
func (*UnexportedFuncMocker) Origin ¶
func (m *UnexportedFuncMocker) Origin(originFunc interface{}) UnExportedMocker
Origin 调用原函数
func (*UnexportedFuncMocker) String ¶
func (m *UnexportedFuncMocker) String() string
String mock 的名称或描述, 方便调试和问题排查
type UnexportedMethodMocker ¶
type UnexportedMethodMocker struct {
// contains filtered or unexported fields
}
UnexportedMethodMocker 对结构体函数或方法进行 mock 能支持到未导出类型、未导出类型的方法的 Mock
func NewUnexportedMethodMocker ¶
func NewUnexportedMethodMocker(pkgName string, structName string) *UnexportedMethodMocker
NewUnexportedMethodMocker 创建未导出方法 Mocker pkgName 包路径 structName 结构体名称
func (*UnexportedMethodMocker) Apply ¶
func (m *UnexportedMethodMocker) Apply(callback interface{})
Apply 指定 mock 执行的回调函数 mock 回调函数, 需要和 mock 模板函数的签名保持一致 方法的参数签名写法比如: func(s *Struct, arg1, arg2 type), 其中第一个参数必须是接收体类型
func (*UnexportedMethodMocker) As ¶
func (m *UnexportedMethodMocker) As(aFunc interface{}) ExportedMocker
As 将未导出函数(或方法)转换为导出函数(或方法)
func (UnexportedMethodMocker) Canceled ¶
func (m UnexportedMethodMocker) Canceled() bool
Canceled 是否被取消
func (*UnexportedMethodMocker) Method ¶
func (m *UnexportedMethodMocker) Method(name string) UnExportedMocker
Method 设置结构体的方法名
func (*UnexportedMethodMocker) Origin ¶
func (m *UnexportedMethodMocker) Origin(originFunc interface{}) UnExportedMocker
Origin 调用原函数
func (*UnexportedMethodMocker) String ¶
func (m *UnexportedMethodMocker) String() string
String mock 的名称或描述, 方便调试和问题排查
type VarMock ¶
type VarMock interface { Mocker // Set 设置变量值, val 类型必须和变量指针指向的值的类型一致 Set(val interface{}) }
VarMock 变量 mock 支持全局变量, 任意类型包括不限于基本类型,结构体,函数变量,指针与非指针类型 主要提供方便变量 mock/reset 场景的能力支持
type When ¶
type When struct { ExportedMocker // contains filtered or unexported fields }
When Mock 条件匹配。 当参数等于指定的值时,会 return 对应的指定值
func CreateWhen ¶
func CreateWhen(m ExportedMocker, funcDef interface{}, args []interface{}, defaultReturns []interface{}, isMethod bool) (*When, error)
CreateWhen 构造条件判断 param 参数条件 defaultReturns 默认返回值 isMethod 是否为方法类型
Source Files
¶
Directories
¶
Path | Synopsis |
---|---|
Package arg 负责参数表达式构造和执行, 执行结果用于 When 参数匹配(Matcher)
|
Package arg 负责参数表达式构造和执行, 执行结果用于 When 参数匹配(Matcher) |
Package erro 收拢了所有的错误类型,错误溯源类型等 1.
|
Package erro 收拢了所有的错误类型,错误溯源类型等 1. |
internal
|
|
arch/x86asm
Package x86asm implements decoding of x86 machine code.
|
Package x86asm implements decoding of x86 machine code. |
bytecode
Package bytecode 是内存字节码层面操作的工具集
|
Package bytecode 是内存字节码层面操作的工具集 |
bytecode/memory
Package memory 包负责内存读写控制
|
Package memory 包负责内存读写控制 |
bytecode/stub
Package stub 负责管理桩函数内存管理
|
Package stub 负责管理桩函数内存管理 |
hack
Package hack 对 go 系统包的 hack, 包含一些系统结构体的 copy,需要和每个 go 版本保持同步
|
Package hack 对 go 系统包的 hack, 包含一些系统结构体的 copy,需要和每个 go 版本保持同步 |
iface
Package iface 生成 interface 的实例对象, 通过 fake iface 结果获得
|
Package iface 生成 interface 的实例对象, 通过 fake iface 结果获得 |
logger
Package logger 负责日志收敛,给日志添加前缀和独立文件输出,以便在本框架被集成之后的日志可读
|
Package logger 负责日志收敛,给日志添加前缀和独立文件输出,以便在本框架被集成之后的日志可读 |
proxy
Package proxy 封装了给各种类型的代理(或较 patch)中间层 负责比如外部传如类型校验、私有函数名转换成 uintptr、trampoline 初始化、并发 proxy 等
|
Package proxy 封装了给各种类型的代理(或较 patch)中间层 负责比如外部传如类型校验、私有函数名转换成 uintptr、trampoline 初始化、并发 proxy 等 |
unexports2
YOU HAVE BEEN WARNED!
|
YOU HAVE BEEN WARNED! |
Package test 兼容性测试、跨包结构测试工具类
|
Package test 兼容性测试、跨包结构测试工具类 |