name: cli-mock-stdin description: 为交互式CLI测试创建模拟标准输入实用工具。 allowed-tools: Read, Write, Edit, Bash, Glob, Grep
CLI 模拟标准输入
为测试创建模拟标准输入实用工具。
生成的模式
import { Readable } from 'stream';
export function mockStdin(inputs: string[]): Readable {
let index = 0;
return new Readable({
read() {
if (index < inputs.length) {
setTimeout(() => {
this.push(inputs[index++] + '
');
}, 10);
} else {
this.push(null);
}
},
});
}
export async function runWithStdin(
cmd: () => Promise<void>,
inputs: string[]
): Promise<void> {
const originalStdin = process.stdin;
Object.defineProperty(process, 'stdin', { value: mockStdin(inputs) });
try {
await cmd();
} finally {
Object.defineProperty(process, 'stdin', { value: originalStdin });
}
}
目标流程
- cli-unit-integration-testing
- interactive-prompt-system