javascript - 如何测试javascript代码

标签 javascript testing

我需要帮助来测试我的 Javascript 代码。我有一个称为更新的方法,它会在屏幕上移动我的游戏中的敌人。

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);
 });

这是我得到的错误 - AssertionError: expected NaN to equal undefined.

我将如何为更新代码编写测试以确保我的敌人正确移动?我知道我应该将 bounceTick 设置为固定数字,因为在类里面它被计算为 Math.random() * 2

最佳答案

错误消息的原因是您只将一个参数传递给 assert.equal(Math.sin(this.bounceTick) *1); 该函数需要两个参数——它是assert.equal,意味着您希望它查看两件事并查看它们是否相等。错误消息中的 undefined 表示缺少第二个参数。消息中的 NaN 表示您对 Math.sin() 的调用返回了一个无法识别为数字的错误值。

此外,如果您将 bounceTick 作为随机值启动,那么您将很难测试代码的这一方面。我写了一个类似的应用程序, Sprite 在屏幕上四处移动。我不像你在这里做的那样用笔试来测试它们;我只是看着它们在屏幕上移动,然后决定它看起来是否正确。

我不知道有什么有效的方法可以像您所做的那样对其进行测试,因为您的 Sprite 将遵循的路径以及它们的起始位置是不可预测的。

关于javascript - 如何测试javascript代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49440483/

相关文章:

javascript - 刷新或重新加载页面后完整日历事件消失

javascript - jquery - xeditable select source using function,使用延迟和本地存储(indexedDB)

unit-testing - Apache Hive 中的自动化测试

unit-testing - 基于属性的异常测试

测试 n 层 Web 应用程序——我的测试项目应该有自己的数据库吗?

javascript - iOS 不更新 JavaScript 文件

javascript - 从两个数组创建/合并对象 HashMap

javascript - CakePHP,将参数传递给js.php文件?

unit-testing - 您会为 J2ME 推荐哪些单元测试框架?

python - pytest fixture 总是返回一个函数