[英]ReferenceError: obj is not defined using webcomponents & polymer
[英]Mocha Webcomponents testing - ReferenceError: customElements is not defined
我正在嘗試使用 typescript 和 mocha 進行一些非常基本的 webcoponnets 測試。 我正在使用 jsdom 來模擬全局的基本文檔,所以我的 moch opts 中有--require jsdom-global/register
。
這是我的測試:
import { assert } from "chai";
class WordCount extends HTMLParagraphElement {
constructor() {
super();
}
}
describe("simple test", () => {
it("works", () => {
customElements.define('word-count', WordCount, { extends: 'p' });
assert.isOk(true);
});
});
但我收到以下錯誤:
ReferenceError: customElements is not defined
最新版本的 JSDom(我正在使用)支持customElements
。 我認為問題歸結為window.customElements
與customElements
。 前一種語法有效,但我嘗試測試的代碼使用后一種語法。 有什么不同?
在瀏覽器上下文中, window.customElements
和customElements
之間沒有區別,因為window
是全局定義的變量的默認命名空間。
var my_var = 'foo"
console.log( window.my_var ) //foo
console.log( window.customElement === customElement )
測試 JSDoc 庫在Node.js上下文中執行,該上下文不是瀏覽器,因此不會將window
公開為其全局/默認命名空間。
然而, JSDoc通過window
屬性公開了一個模擬的瀏覽器上下文。 因此,您可以使用window.customElements()
並且您嘗試測試的代碼沒有區別。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.