Как мне использовать Jasmine для тестирования проекта Phaser 3? - PullRequest
1 голос
/ 15 апреля 2019

В настоящее время я занимаюсь разработкой мини-игры в среде phaser.js, и поскольку масштабы проекта довольно велики, я действительно хочу работать с юнит-тестами.Однако, пытаясь настроить модульные тесты в Jasmine для Phaser, я сталкиваюсь с ошибками, связанными с зависимостями.

У меня нет опыта работы с Jasmine или какой-либо другой средой тестирования, поэтому я могу упустить из виду нечто очевидное для опытного разработчика..

Мой файл .spec выглядит следующим образом:

describe("motorMain", function() {
    var Phaser = require('../phaser');
    var MotorMain = require("../motorMain"); 

    var motorMain;
    var phaser;

    beforeEach(function() {
        phaser = new Phaser();
        motorMain = new motorMain();
      });

    it("should increase the score if a object is clicked", function(){
        var scoreBeforeClicking = motorMain.score;
        var gameobject;
        motorMain.clickhandler("",gameobject);
        expect(scoreBeforeClicking+1).toEqual(score);
    })
});

Но так как Phaser зависит от запуска в браузере, при запуске он жалуется на невозможность доступа к таким элементам, какwindow и document в Phaser.

Я получаю такие ошибки, как:

ReferenceError: документ не определен

Есть ли у кого-нибудь опыт?с тестированием Phaser игр?Я не могу найти информацию об этом в Интернете.Можно ли даже тестировать игры Phaser?

Что касается других платформ тестирования, я также посмотрел на nightwatch, но его поддержка Phaser устарела, и это в основном e2e вместо модульного тестирования, так что это не так.что я ищуВ Интернете я также видел, что кто-то разработал Shimming версию Phaser 2.4.7, но сейчас она устарела, так как в Phaser 3 многое изменилось.

...