現在、npmモジュールを開発し、最初のものを開発しようとしています。私はブラウザに(スクリプトタグを付けて)それを含めることができるようにしたいと思います。また、npm installを介して利用できるようにしたいと思います。また、htmlページを開いてブラウザにコードが含まれていて、ノード経由でテストを実行しています(たとえば、npm run testなど)。DOM要素を必要とするnpmモジュールをテストする方法
基本的に、私のライブラリのプロットのx、私は好き、それを使用するように、キャンバスのIDに基づいて、キャンバス上のyグラフ:
var g1 = new Plotter('canvas1');
g1.plot([[x1, y1], [x2, y2], [x3, y3]];
だから私のプロッタコンストラクタはこの
constructor(idElement) {
this.canvas = root.document.getElementById(idElement);
this.ctx = this.canvas.getContext('2d');
this.origin = {
x: this.canvas.width/2,
y: this.canvas.height/2
};
}
のように見えます
ブラウザでうまく動作しますが、モカ、チャイ、AVA、ジャスミンを試してみると、テストを実行する方法を理解できませんでした。それは常にの結果は、未定義のプロパティgetElementByIdを見つけることができません。ここに私のコンストラクタテストは次のとおりです。
it('Constructor test', function() {
const window = new Window();
const canvas = window.document.createElement('canvas');
canvas.setAttribute('id', 'canvas1');
const g1 = new Plotter('canvas1');
g1.plot([0,0],[40,5]);
expect(canvas.id).to.equal('graphique');
});
あなたは私がこれを行うことになったり、全くあれば、それはNPMモジュールでgetElementByIdをを使用することをお勧めがあるのですか方法を知っていますか?代わりにコンストラクタの引数としてキャンバスの幅と高さを受け取るだけですか?
あなたはより多くの情報が必要なら、私に教えてください
は、備品用ループ
こんにちはSvenさん、ブラウザでbem.jsを使用できますか? (スクリプトタグ付き)。しかし、はい、ジャスミンjqueryは仕事をすることができます、私はあなたのコードにもっと深く見て、私がやろうとしているものとそれを合わせることができます参照してください –