Javascript 通过jest(ts jest)使用名称空间测试typescript代码
当我尝试测试typescript代码时:Javascript 通过jest(ts jest)使用名称空间测试typescript代码,javascript,unit-testing,typescript,namespaces,jestjs,Javascript,Unit Testing,Typescript,Namespaces,Jestjs,当我尝试测试typescript代码时: namespace MainNamespace { export class MainClass { public sum(a: number, b: number) : number { return a + b; } } } 我的测试: describe("main test", () => { it("sum test", () => {
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
如何使用名称空间和Jest(ts Jest)测试代码?下面是一个工作示例:
index.ts
:
//tslint:禁用下一行:无命名空间
导出命名空间MainNamespace{
导出类main类{
公和(a:数,b:数):数{
返回a+b;
}
}
}
索引规范ts
:
从“/”导入{mainnespace};
描述('mainnespace',()=>{
它('sum test',()=>{
const mainClass=new mainnespace.mainClass();
期望(主类和(3,2)).toEqual(5);
});
});
100%覆盖率的单元测试结果:
通过src/stackoverflow/50085505/index.spec.ts
主命名空间
✓ 总和测试(7ms)
----------|----------|----------|----------|----------|-------------------|
文件|%Stmts |%Branch |%Funcs |%Line |未覆盖行|s|
----------|----------|----------|----------|----------|-------------------|
所有文件| 100 | 100 | 100 | 100 ||
index.ts | 100 | 100 | 100 | 100 ||
----------|----------|----------|----------|----------|-------------------|
测试套件:1个通过,共1个
测试:1项通过,共1项
快照:共0个
时间:5.713s,估计10s
依赖项版本:
"typescript": "^3.6.4",
"jest": "^24.9.0",
"ts-jest": "^24.1.0",
源代码:您找到解决方案了吗?我遇到了同样的问题。我删除了所有的名称空间,现在只使用模块。他们来晚了,但遇到了类似的问题,我使用的是模块(类似于
modulemainmodule{export class MainClass{})
但我的测试文件中仍然出现语法或类型错误,您是在测试文件中使用源文件的导入
,还是完全依赖声明合并?