2017-09-11 15 views
0

私はjasmine-tsを使ってテストを書いていますが、dom要素を表す型を使用しない多くの作業テストがあります。jasmine-ts ReferenceError:SVGGElementが定義されていません

は今、私は次のように単純化することができるテストを書かれている:

describe("A Test", 
    () => { 
     it("when an element is created then it is defined", 
      () => { 
       const element = new SVGGElement(); 
       expect(element).toBeDefined(); 
      } 
     ); 
    } 
); 

使用してテストを実行しているジャスミン-TS、テストは次のエラーで失敗します。

Message: ReferenceError: SVGGElement is not defined Stack: ReferenceError: SVGGElement is not defined at Object. (C:\Path\Test.spec.ts:50:37)

I SVGGElementが両方で宣言されていることを確認してください。

  • ... \ TypeScript \ 2.4 \ lib.es6.d.tsおよび
  • TSCを使用している場合、このタイプの明示的なインポートがないのに
  • ... \ 2.4 \ lib.dom.d.ts

\活字体はすべてが、コンパイルされます。おそらくこれは、tsconfig.jsonに次の作品:このテストを実行することが可能であるように、私は物事を設定するにはどうすればよい

"compilerOptions": { 
    "lib": [ "es6", "dom" ] 
} 

答えて

0

ReferenceError: SVGGElement is not defined

これは実行時エラーです。コンパイルエラーではありません。 SVGGElementをサポートしていない環境で実行しています。 nodejs

もっと

セットアップは、ブラウザで実行します。 Check the docs.

+0

ヒントのためにありがとう。ドキュメンテーションのどの部分が私の問題に関連し、ジャスミン-tを使用している私のランニングテストに関連していますか? – fractor

0

私がbasaratから提供された答えで武装して、私はJestに切り替えました。これはjsdomと一緒に出荷されました。

しかし、テストを実行すると、私はまったく同じエラーになりました。

このようにコンストラクタを使用して要素を作成しようとすると、サポートされていないようです。代わりに私は次のコードを使用しました:

const gElement = document.createElementNS("http://www.w3.org/2000/svg", "g") as SVGGElement; 
関連する問題