用途:该技能用于 UI5 项目的 QUnit 测试编写与维护,触发场景包括编写 QUnit 测试、修复失败的 QUnit 测试、新增 QUnit 模块、现代化 QUnit 测试、从 QUnit 1 迁移,以及涉及 nextUIUpdate、Core.applyChanges、assert.async、假定时器或事件异步的测试。
主要能力与用法:按场景加载对应参考文档,且要求先加载参考再产出内容,不要凭记忆编写。编写新测试文件或模块时加载 references/writing-new-tests.md;现代化、重构或审查现有测试代码,以及从 QUnit 1(test、asyncTest、ok、stop、start 等全局函数)迁移到 QUnit 2 时,加载 references/modernizing-tests.md;测试涉及 nextUIUpdate、Core.applyChanges、assert.async、假定时器或事件异步时,加载 references/async-patterns.md。
核心规则:不使用 var,改用 const 或 let,每行一个声明,不用逗号链;回调不需要自身 this 时用箭头函数,不用 .bind(this);每个异步测试都要有 assert.expect(N),同步测试不要求;新代码不用 sinon.sandbox.create(),改用 sinon.createSandbox(),或使用 QUnit-sinon 桥接的 this.stub()、this.spy()、this.mock(),this.clock 仅在 sinon.config.useFakeTimers 为真时使用,同一模块内不要混用两种方式;测试名用描述行为的句子,不要以 it should 开头,且模块内唯一;每个模块都要有 beforeEach 与 afterEach,在 beforeEach 创建控件、在 afterEach 销毁,测试间不共享可变状态;辅助函数创建的控件必须在 finally 中销毁;注释、字符串和 JSDoc 中不使用非 ASCII 字符,用普通 ASCII 连字符而非长破折号;ESLint 需 0 错误,既有模式产生的警告可接受。
限制:资料未提供安装命令、版本要求、平台支持、收费信息及具体代码示例,相关细节暂未提供。