python - 如何使用 while 循环编写有效的游戏代码测试?

标签 python unit-testing testing automated-tests

我今天一直在用 python 编写一个简单的四人连线游戏。我打算对游戏进行全面测试。

除了主游戏循环之外,我已经为我的所有方法编写了测试。我不确定如何为主要游戏循环编写有效的测试。

在下面的函数中:

  • self.move 获取玩家的移动并将其放入游戏板;和

  • is_game_complete() 根据游戏是否完成返回一个 bool 值。

以上两个都有有效的测试。

我不确定如何为下面的内容编写有用的测试。测试是否合适?

def game_loop(self):
    while True:
        for active_player in self.players:
            self.move(active_player)
            if self.game_checker.is_game_complete():
                return active_player

我希望有一种简洁的方法来编写测试,或者测试不太可能在这里有用。

非常感谢您的任何回复。

最佳答案

你不应该用单元测试来测试游戏循环(太多的依赖性无法伪造)。它在这里没有用。如果您测试了 self.move(active_player)is_game_complete() 就足够了。您不可能拥有 100% 的测试覆盖率,尤其是在游戏开发中。

关于python - 如何使用 while 循环编写有效的游戏代码测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54391223/

相关文章:

Python win32com 常量

java - 强制 JUnit 显示未捕获的异常堆栈跟踪

java - 使用unittest调用时org.json.JSONObject.getNumber()抛出 "NoSuchMethodError"

php - 测试。可以在同一测试中使用多个调用吗?

firefox - selenium 2.16.1 和 Firefox 9.0.1 兼容吗?

testing - Maven Transitive dependencies of dependencies in test scope included into a package

python - 如何在 setup.py 中使用 distutils 或 setuptools 使 cython 扩展可导入(无需在每次导入之前附加到 sys.path )?

python - 创建多个以逗号分隔的空列表

javascript - Django ajax 403 因为 httponly cookie

java - 使用 Mockito 进行单元测试 - 忽略方法调用