Svi*_*cer 6 javascript unit-testing namespaces typescript jest
当我尝试测试打字稿代码时:
namespace MainNamespace {
export class MainClass {
public sum(a: number, b: number) : number {
return a + b;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的测试:
describe("main test", () => {
it("sum test", () => {
var mainClass = new MainNamespace.MainClass();
expect(mainClass.sum(3, 2)).toEqual(5);
})
})
Run Code Online (Sandbox Code Playgroud)
我得到错误:
ReferenceError:未定义MainNamespace
如何使用带有Jest(ts jest)的名称空间测试代码?
这是一个工作示例:
\n\nindex.ts:
// tslint:disable-next-line: no-namespace\nexport namespace MainNamespace {\n export class MainClass {\n public sum(a: number, b: number): number {\n return a + b;\n }\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\nindex.spec.ts:
import { MainNamespace } from \'./\';\n\ndescribe(\'MainNamespace\', () => {\n it(\'sum test\', () => {\n const mainClass = new MainNamespace.MainClass();\n expect(mainClass.sum(3, 2)).toEqual(5);\n });\n});\nRun Code Online (Sandbox Code Playgroud)\n\n100%覆盖率的单元测试结果:
\n\n PASS src/stackoverflow/50085505/index.spec.ts\n MainNamespace\n \xe2\x9c\x93 sum test (7ms)\n\n----------|----------|----------|----------|----------|-------------------|\nFile | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s |\n----------|----------|----------|----------|----------|-------------------|\nAll files | 100 | 100 | 100 | 100 | |\n index.ts | 100 | 100 | 100 | 100 | |\n----------|----------|----------|----------|----------|-------------------|\nTest Suites: 1 passed, 1 total\nTests: 1 passed, 1 total\nSnapshots: 0 total\nTime: 5.713s, estimated 10s\nRun Code Online (Sandbox Code Playgroud)\n\n依赖版本:
\n\n"typescript": "^3.6.4",\n"jest": "^24.9.0",\n"ts-jest": "^24.1.0",\nRun Code Online (Sandbox Code Playgroud)\n\n源代码:https ://github.com/mrdulin/jest-codelab/tree/master/src/stackoverflow/50085505
\n| 归档时间: |
|
| 查看次数: |
502 次 |
| 最近记录: |