gpt4 book ai didi

jasmine - 如何使用 Jasmine 测试 Phaser 3 项目?

转载 作者:行者123 更新时间:2023-12-05 02:12:34 24 4
gpt4 key购买 nike

我目前正在使用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 依赖于在浏览器中运行,当我运行它时它会提示无法访问 Phaser 中的元素,例如 windowdocument

我收到如下错误:

ReferenceError: document is not defined

有没有人有测试 Phaser 游戏的经验?我似乎无法在网上找到任何关于它的信息。甚至可以测试 Phaser 游戏吗?

至于其他测试框架,我也研究过nightwatch,但是它的Phaser支持已经过时,而且它主要是e2e而不是单元测试,所以它不是我要找的。我还在网上看到有人开发了 Phaser 2.4.7 的 shimming 版本,但是现在已经过时了,因为 Phaser 3 已经发生了很多变化。

最佳答案

好的,我有一些工作!

这是最低要求,但 Phaser 可以被实例化而不会出错。

package.json

{
"scripts": {
"test": "jasmine --config=jasmine.json"
},
"devDependencies": {
"canvas": "^2.8.0",
"jasmine": "^3.7.0",
"jsdom": "^16.6.0",
"jsdom-global": "^3.0.2"
},
"dependencies": {
"phaser": "^3.55.2"
}
}

jasmine.json

{
"spec_dir": "spec",
"spec_files": [
"**/*[sS]pec.js"
]
}

spec/Phaser.Spec.js

require('canvas');
require('jsdom-global')();
const Phaser = require("phaser");

describe("A suite", function () {

it("Instantiate a Phaser.Game", function () {
let game = new Phaser.Game({ type: Phaser.HEADLESS });

expect(game).not.toBe(null);
})

})

控制台的输出是:

$ jasmine --config=jasmine.json
Randomized with seed 06585
Started
Phaser v3.55.2-FB (Headless | HTML5 Audio) https://phaser.io
.


1 spec, 0 failures
Finished in 0.016 seconds
Randomized with seed 06585 (jasmine --random=true --seed=06585)
✨ Done in 1.28s.

关于jasmine - 如何使用 Jasmine 测试 Phaser 3 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55690117/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com