如何测试是否在Python中导入模块以进行测试驱动的游戏开发?

duk*_*reg 3 python tdd unit-testing

我即将使用python和libtcod roguelike游戏库制作游戏.

更重要的是,我正在使用PyMock,因为我刚开始学习测试驱动开发,我决心不作弊.我真的想养成正确的习惯,根据TDD,我需要在编写第一行代码之前进行失败的单元测试.

我认为我对"生产"代码的第一次测试应该是导入它的依赖项libcotdpy.

我的测试文件:

#!/usr/bin/python
import pymock   # for mocking and unit testing
import game     # my (empty) production code file, game.py

class InitializeTest(pymock.PyMockTestCase):
    def test_libtcod_is_imported(self):
        # How do I test that my production file imports the libtcodpy module?

if __name__=="__main__":
    import unittest
    unittest.main()
Run Code Online (Sandbox Code Playgroud)

请:

1)(python people)如何测试模块是否已加载?

2)(TDD人)我应该对这个基本的单元测试吗?如果没有,我应该测试的第一件事是什么?

Pet*_*rin 6

1)'your_module' in sys.modules.但实际上并没有使用它:

2)什么你的图书馆应该怎么办?它"依赖于libcotdpy"吗?我想不是.

你刚刚做了一个不是测试驱动的设计选择!

编写一个演示如何使用库的测试.不要考虑你将如何实现它.例如:

player = my_lib.PlayerCharacter()
assert player.position == (0, 0)  # or whatever assert syntax `pymock` uses
press_key('k')
assert player.position == (0, 1)
Run Code Online (Sandbox Code Playgroud)

或类似的东西.(我不知道你希望你的图书馆做什么,或者libtcod提供了多少.)