Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过jest(ts jest)使用名称空间测试typescript代码_Javascript_Unit Testing_Typescript_Namespaces_Jestjs - Fatal编程技术网

Javascript 通过jest(ts jest)使用名称空间测试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", () => {

当我尝试测试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


如何使用名称空间和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{})
但我的测试文件中仍然出现语法或类型错误,您是在测试文件中使用源文件的
导入
,还是完全依赖声明合并?