我正在使用jasmine-ts编写测试,并且我有许多不使用表示dom元素的类型的工作测试。
现在我已经编写了一个可以简化为以下内容的测试:
describe("A Test",
() => {
it("when an element is created then it is defined",
() => {
const element = new SVGGElement();
expect(element).toBeDefined();
}
);
}
);
使用jasmine-ts运行测试时,测试失败并出现以下错误:
消息: ReferenceError:未定义SVGGElement Stack: ReferenceError:未定义SVGGElement 在对象。 (C:\路径\ Test.spec.ts:50:37)
我看到SVGGElement都在
中声明使用tsc时全部编译,但此类型没有明确导入。可能这是因为tsconfig.json中的以下内容:
"compilerOptions": {
"lib": [ "es6", "dom" ]
}
如何配置以便可以运行此测试?
答案 0 :(得分:0)
ReferenceError:未定义SVGGElement
这是运行时错误。不是编译错误。您运行的环境不支持SVGGElement
,例如nodejs
设置在浏览器中运行。 Check the docs.
答案 1 :(得分:0)
有了巴士拉特提供的答案,我转而使用了Jest,因为它带有jsdom。
然而,运行测试我得到完全相同的错误。
似乎不支持尝试以这种方式使用构造函数构造元素。相反,我使用了以下代码:
const gElement = document.createElementNS("http://www.w3.org/2000/svg", "g") as SVGGElement;