gpt4 book ai didi

javascript - 通过 jest (ts-jest) 使用命名空间测试 typescript 代码

转载 作者:行者123 更新时间:2023-12-04 00:29:45 28 4
gpt4 key购买 nike

当我尝试测试 typescript 代码时:

namespace MainNamespace {
export class MainClass {
public sum(a: number, b: number) : number {
return a + b;
}
}
}

我的测试:
describe("main test", () => {
it("sum test", () => {
var mainClass = new MainNamespace.MainClass();
expect(mainClass.sum(3, 2)).toEqual(5);
})
})

我收到错误:

ReferenceError: MainNamespace is not defined



如何使用 Jest (ts jest) 测试带有命名空间的代码?

最佳答案

这是一个工作示例:
index.ts :

// tslint:disable-next-line: no-namespace
export namespace MainNamespace {
export class MainClass {
public sum(a: number, b: number): number {
return a + b;
}
}
}
index.spec.ts :

import { MainNamespace } from './';

describe('MainNamespace', () => {
it('sum test', () => {
const mainClass = new MainNamespace.MainClass();
expect(mainClass.sum(3, 2)).toEqual(5);
});
});

100% 覆盖率的单元测试结果:

 PASS  src/stackoverflow/50085505/index.spec.ts
MainNamespace
✓ sum test (7ms)

----------|----------|----------|----------|----------|-------------------|
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s |
----------|----------|----------|----------|----------|-------------------|
All files | 100 | 100 | 100 | 100 | |
index.ts | 100 | 100 | 100 | 100 | |
----------|----------|----------|----------|----------|-------------------|
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 5.713s, estimated 10s

依赖版本:
"typescript": "^3.6.4",
"jest": "^24.9.0",
"ts-jest": "^24.1.0",

源代码: https://github.com/mrdulin/jest-codelab/tree/master/src/stackoverflow/50085505

关于javascript - 通过 jest (ts-jest) 使用命名空间测试 typescript 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50085505/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com