私はMeteorアプリケーションをテストするためにmochaとchaiを使い、ドキュメントオブジェクトを使用するモジュールを持っています。このテストはサーバー上で実行されており、もちろん「ドキュメントは定義されていません」というトリガーになります。ドキュメントオブジェクトを模擬したり、ドキュメントを使用するモジュールでテストを実行したりする良い方法はありますか?Meteor Appでテストするための "ドキュメント"オブジェクトを模擬する方法は?
私はjsdom、jsdomifyなどを試しています。また、メテオガイドのテストセクションに従って統合テストとフルアプリケーションテストを試みましたが、スタックしてしまいました。
流星のjsdomのようなパッケージを使用する場合の提案や例は、非常に高く評価されます。
EDIT - を追加しました例
は、ここで私は何をしようとしているのは非常に小さな例です。 PhaserJSを追加せずにエラーをトリガーするように、私はそれを細断しました。しかし、Pixiとp2が必要なPhaserJSを使用するプロジェクトであるため、Pixi/p2/Phaserがそのドキュメントで行う必要があることをすべて伝えるのは少し難しいです。
/test/game.test.js
import { chai } from 'meteor/practicalmeteor:chai';
import {Game} from '/imports/game.js';
var assert = chai.assert;
if(Meteor.isClient){
describe('Game', function() {
it('can add 2 + 3 and return 5 with addNumbers function.', function() {
//arrange
var game = new Game();
//act
var result = game.addNumbers(2,3);
//assert
assert.equal(result, 5);
});
});
}
/imports/docChanger.js
//simulates pixi
(function(){
var docChanger = {};
docChanger.canvas = document.createElement('canvas');
return docChanger;
}).call(this);
/imports/game.js
import docChanger from '/imports/docChanger.js';
export class Game {
constructor(){
this.docChanger = docChanger;
}
addNumbers(x,y){
return x+y;
}
}
私は流星1.4.1を使用していて、次のパッケージ使用しています:
practicalmeteor:モカ
practicalmeteorを:あなたが唯一のクライアントでテストを実行するので
'document'の使い方のサンプルコードを投稿できますか?答えの種類は、それを変更したり、プロパティにアクセスしたり、関数を呼び出すかどうか、クライアント固有のコードがどのようになっているかによって異なります。 – Waiski
@Waiskiはコメントをいただきありがとうございます。私は小さな例を追加しました。私が使用しているPhaserJS/pixi/p2モジュールには多くのコード行があるため、ドキュメントが使用されているすべての方法がわかりません。しかし、上記の例は最も基本的な方法でエラーを引き起こします。私が使っているモジュールのコードへのリンクは、pixi.js、p2.js、phaser.jsです:https://github.com/photonstorm/phaser/tree/master/build – mkimmet