会C#单元测试,如何为TypeScript代码编写测试用例?
TypeScript单元测试用例示例(对应你C#的计算器类)
先写出对应C# Calculate 类的TypeScript实现:
// calculate.ts export class Calculate { Add(a: number, b: number): number { return a + b; } Subtract(a: number, b: number): number { return a - b; } }
下面用目前最流行的Jest测试框架编写单元测试,结构和你C#的测试逻辑完全对应:
// calculate.test.ts import { Calculate } from './calculate'; // 对应C#的[TestClass] describe('Calculate类', () => { let calculator: Calculate; // 对应C#的[TestInitialize],每次测试前初始化实例 beforeEach(() => { calculator = new Calculate(); }); // 分组测试Add方法,对应C#里按方法分组的测试 describe('Add方法', () => { // 对应C#的[TestMethod] it('两个正数相加应返回正确的和', () => { const result = calculator.Add(2, 3); expect(result).toBe(5); }); it('正数加负数应返回正确结果', () => { const result = calculator.Add(5, -2); expect(result).toBe(3); }); it('互为相反数相加应返回0', () => { const result = calculator.Add(-4, 4); expect(result).toBe(0); }); }); // 分组测试Subtract方法 describe('Subtract方法', () => { it('两个正数相减应返回正确的差', () => { const result = calculator.Subtract(5, 3); expect(result).toBe(2); }); it('减去负数应返回正确结果(等价于加正数)', () => { const result = calculator.Subtract(3, -2); expect(result).toBe(5); }); it('小数减大数应返回负数', () => { const result = calculator.Subtract(2, 5); expect(result).toBe(-3); }); }); });
快速上手步骤:
- 安装依赖:在项目根目录执行
npm install --save-dev jest typescript ts-jest @types/jest - 生成Jest配置文件:
npx ts-jest config:init - 运行测试:
npx jest
这个测试结构和你C#的测试逻辑一一对应:describe 对应C#的TestClass,it对应TestMethod,beforeEach对应TestInitialize,expect(result).toBe(xxx)对应C#的Assert.AreEqual(xxx, result)。
内容的提问来源于stack exchange,提问作者Sanjay G
相关产品推荐
相关产品推荐

