test: 测试文件跟源文件同名,删掉复制粘贴出来的重复

改完之后「某个行为在哪测」就是查同名文件:

  lazyglobal_test.go      → engine_globals_test.go
  static_test.go          → script_static_test.go
  scope_pool_test.go      → script_vm_test.go     它测的是 VM 池,不是作用域
  esmwrap_test.go         → bundle_finalize_test.go
  missing_global_test.go  → errors_hints_test.go
  entry_test.go           → bundle_entry_test.go  并收下 bundle_test.go 里
                                                  那三个 TestEntry_*

删掉 5 组复制粘贴。其中 TestNew_同实例调用串行 和 TestInstance_调用串行 **函数体
完全一致**,只差 mustCompile 的文件名参数 counter.js / counter.ts。Instance 的
测试全部归 instance_test.go 并统一前缀成 TestInstance_,scope_test.go 只留作用域。

vmstate_test.go + govalue_test.go → goja_facts_test.go。这两个测的都是 **goja
本身**,不是这个库:Program 能不能给多个 Runtime 共用、顶层变量跟不跟 Runtime 走、
Go 的切片进到脚本里是不是真数组。它们是「为什么这个库要这么设计」的实验记录,
goja 行为变了会先红。原来那个名字看不出这层定位。

helper 集中到 helper_test.go:newEngine / mustCompile 被十几个文件依赖,原来住在
script_test.go 里,那个名字暗示「测 Script」,找不到。

caller_example_test.go 并进 caller_test.go——同一个类型没必要两个文件。

overlay_test.go 和 script_vm_test.go 保持内部测试,各写了一句为什么:前者要读
Engine.loader 和 isPrepared,后者要直接断言 vmHandle.scoped。我试过把 overlay
挪成外部测试,挪不动。
This commit is contained in:
2026-09-10 15:39:25 +08:00
parent 7e1893b246
commit 7c9a70712e
16 changed files with 427 additions and 572 deletions
-21
View File
@@ -9,27 +9,6 @@ import (
"git.fsdpf.net/go/jscriptx"
)
// newEngine 造一个测试用引擎,默认不打日志(避免测试输出被 console 刷屏)。
func newEngine(t *testing.T, opts ...jscriptx.Option) *jscriptx.Engine {
t.Helper()
opts = append([]jscriptx.Option{jscriptx.WithLogger(nil)}, opts...)
e, err := jscriptx.New(opts...)
if err != nil {
t.Fatalf("New 失败: %v", err)
}
t.Cleanup(e.Close)
return e
}
func mustCompile(t *testing.T, e *jscriptx.Engine, name, src string) *jscriptx.Script {
t.Helper()
s, err := e.Compile(name, src)
if err != nil {
t.Fatalf("编译 %s 失败: %v", name, err)
}
return s
}
func TestCall_基本调用(t *testing.T) {
e := newEngine(t)
s := mustCompile(t, e, "calc", `