diff --git a/src/vscode_plugin/src/test/suite/common/tool.test.ts b/src/vscode_plugin/src/test/suite/common/tool.test.ts index 2b3ab543bf75a08f5b9eb6ac622e8f7560734bbc..b8e33a62572c70da9d1b24576a035a9c6d081469 100644 --- a/src/vscode_plugin/src/test/suite/common/tool.test.ts +++ b/src/vscode_plugin/src/test/suite/common/tool.test.ts @@ -48,7 +48,7 @@ suite('Common_Tool_Test_Suite', () => { let resultStr = '' // 会死循环 // resultStr = tools.replaceAll('hello_world', '', 'er'); - // Logger.getInstance().debug("test replaceall_test_3 " + resultStr); + // console.log("test replaceall_test_3 " + resultStr); // assert.strictEqual(resultStr, 'hello_world'); resultStr = tools.replaceAll('hello_world', 'ahello_world', 'er'); @@ -73,4 +73,173 @@ suite('Common_Tool_Test_Suite', () => { // resultStr = tools.replaceAll('', '', 1); // assert.strictEqual(resultStr, 1); }); -}); + + //#region getTab 测试 + //1, 测试一般情况 + test('getTab_test_1', () => { + let resultTab = ''; + resultTab = tools.getTab(1); + assert.strictEqual(resultTab, ' '); + + resultTab = tools.getTab(3); + assert.strictEqual(resultTab, ' '); + }); + + //2, 测试边界情况 + test('getTab_test_2', () => { + let resultTab = ''; + resultTab = tools.getTab(0); + assert.strictEqual(resultTab, ''); + + resultTab = tools.getTab(-3); + assert.strictEqual(resultTab, ''); + }); + + //3, 测试异常情况 + test('getTab_test_3', () => { + let resultTab = ''; + resultTab = tools.getTab(2.1); + console.log('小数处理:' + resultTab); + assert.strictEqual(resultTab, ' '); // 循环执行2次 + + resultTab = tools.getTab(NaN); // 非数字处理 + assert.strictEqual(resultTab, ''); + }); + + //4, 测试错误情况 + test('getTab_test_4', () => { + let resultTab = ''; + try { + resultTab = tools.getTab('a' as any); + assert.strictEqual(resultTab, ''); + } catch (error) { + console.log('参数类型错误'+ JSON.stringify(error)); + } + }); + + //#region removeComments 测试 + //1, 测试一般情况 + test('removeComments_test_1', () => { + const code = +`let x = 5;//注释 +/* 多行注释 */ +function(){}`; + let resultStr = ''; + resultStr = tools.removeComments(code); + console.log('去除注释后:' + resultStr); + assert.strictEqual(resultStr, 'let x = 5;\n\nfunction(){}'); + }); + + //2, 测试边界情况 + test('removeComments_test_2', () => { + const code1 = `//只有注释`; + let resultStr = ''; + resultStr = tools.removeComments(code1); + assert.strictEqual(resultStr, ''); + + const code2 = `/* 注释 */无注释`; + resultStr = tools.removeComments(code2); + assert.strictEqual(resultStr, '无注释'); + }); + + //3, 测试异常情况 + test('removeComments_test_3', () => { + const code = 'let x = /*未闭合注释'; + let resultStr = ''; + resultStr = tools.removeComments(code); + assert.strictEqual(resultStr, 'let x = /*未闭合注释'); + }); + + //4, 测试错误情况 + test('removeComments_test_4', () => { + let resultStr = ''; + try { + const code = 5; + resultStr = tools.removeComments(code as any) + assert.strictEqual(resultStr, ''); + } catch(error) { + console.log('参数类型错误'+ JSON.stringify(error)); + } + }); + + //#region generateRandomInteger 测试 + //1, 测试一般情况 + test('generateRandomInteger_test_1', () => { + let resultNum = 0; + resultNum = tools.generateRandomInteger(5, 10); + assert.ok(resultNum >= 5 && resultNum <= 10); + }); + + //2, 测试边界情况 + test('generateRandomInteger_test_2', () => { + let resultNum = 0; + resultNum = tools.generateRandomInteger(5,5); + assert.strictEqual(resultNum, 5); + + resultNum = tools.generateRandomInteger(-3,-1); + assert.ok(resultNum <= -1); + }); + + //3, 测试异常情况 + test('generateRandomInteger_test_3', () => { + let resultNum = 0; + // 反向区间测试 + resultNum = tools.generateRandomInteger(10, 5); + console.log(`resultNum3: ${resultNum}`); + assert.ok(resultNum >= 5 && resultNum <= 10); // 注意函数实际会处理反向区间 + }); + + //4, 测试错误情况 + test('generateRandomInteger_test_4', () => { // 错误情况 + let resultNum = 0; + try { + resultNum = tools.generateRandomInteger('a' as any , 10); + assert.strictEqual(resultNum, NaN); + } catch(error) { + console.log('参数类型错误'+ JSON.stringify(error)); + } + }); + //#endregion + + //#region removeTab 测试 + //1, 测试一般情况 + test('removeTab_test_1', () => { + let resultStr = ''; + const code = ` public:class Test {}`; + resultStr = tools.removeTab(code); + assert.strictEqual(resultStr, 'public:class Test {}'); + }); + + //2, 测试边界情况 + test('removeTab_test_2', () => { + let resultStr = ''; + const code1 = ' '; + resultStr = tools.removeTab(code1) + assert.strictEqual(resultStr, ''); + + const code2 = 'noSpace'; + resultStr = tools.removeTab(code2) + assert.strictEqual(resultStr, 'noSpace'); + }); + + //3, 测试异常情况 + test('removeTab_test_3', () => { + let resultStr = ''; + const code = 'protected:void main() { }'; + resultStr = tools.removeTab(code); + assert.strictEqual(tools.removeTab(code), 'protected:void main() { }'); + }); + + //4, 测试错误情况 + test('removeTab_test_4', () => { + let resultStr = ''; + try { + const code = 123; + resultStr = tools.removeTab(code as any); + assert.strictEqual(resultStr, 123); + } catch(error) { + console.log('参数类型错误'+ JSON.stringify(error)); + } + }); + //#endregion +}); \ No newline at end of file