我需要帮助来测试我的Javascript代码。 我有一个名为 update 的方法,它将在屏幕上移动我的游戏中的敌人。
constructor(game, x, y, bulletLayer, frame) {
super(game, x, y, 'enemy', frame);
this.bounceTick = Math.random() * 2; }
update() {
this.bounceTick += .02;
this.y += Math.sin(this.bounceTick) * 1;
}
在为它编写测试时,这就是我试图做的。
it("moves position correctly", function() {
this.bounceTick = 2;
enemy.update();
assert.equal(Math.sin(this.bounceTick) *1);
});
这是我得到的错误 - 断言错误:预期 NaN 等于未定义。
我将如何为更新代码编写测试以确保我的敌人正确移动?我知道我应该将 bounceTick 设置为一个固定数字,因为在类中它被计算为 Math.random(( * 2
错误消息的原因是您只传递一个参数来assert.equal(Math.sin(this.bounceTick) *1);
该函数需要两个参数 - 它是assert.equal
的,这意味着您希望它查看两件事并查看它们是否相等。错误消息中的undefined
指示缺少第二个参数。消息中的NaN
表示您对Math.sin()
的调用返回了一个无法识别为数字的错误值。
测试代码的这一方面,因为您开始bounceTick
是随机值。我写了一个类似的应用程序,精灵在屏幕上移动。我不会像你在这里做的那样用笔试来测试它们;我只是看着他们在屏幕上移动,然后决定它看起来是否正确。
我不知道有什么有效的方法来测试它,因为你的精灵将遵循的路径,以及它们的起始位置,是不可预测的。