我对于Python有点新,而且我陷入了一个错误,我似乎无法在这里或在互联网上的其他任何地方找到这个错误。可能是一个简单的:Python单元中的实例初始化测试错误
我有一个女巫的单元测试类我想测试我的'控制器'类的方法。单元测试类看起来是这样的:
import unittest
from Controller import Controller
class ControllerUnitTests(unittest.TestCase):
def test_no_ants_must_be_in_own_dead_ants_list(self):
controller = Controller()
self.assertTrue(controller.__ourBots[0] is None)
if __name__ == "__main__":
#import sys;sys.argv = ['', 'Test.testName']
unittest.main()
我只是检查控制器类(ourBots,列表)的属性是否在它没有任何项目。
当我运行代码,我得到了以下错误:
Finding files... done.
Importing test modules ... done.
======================================================================
ERROR: test_no_ants_must_be_in_own_dead_ants_list
(ControllerUnitTests.ControllerUnitTests)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\Users\rgroenve\Python\KamikazeMieren\src\ControllerUnitTests.py", line 22, in test_no_ants_must_be_in_own_dead_ants_list
self.assertTrue(controller.__ourBots[0] is None)
AttributeError: Controller instance has no attribute '_ControllerUnitTests__ourBots'
----------------------------------------------------------------------
Ran 1 test in 0.000s
FAILED (errors=1)
它看起来就像是搜索,而不是我的控制器类为自己的类内的属性。我不明白为什么以及如何。
控制器类的顶部看起来是这样的:
class Controller:
__priority = 0
__ourBots = []
def __init__(self):
pass
关于如何解决此问题的任何想法?
Controller()是否有'ourBots'? –
是的,但是,它被声明为一个'私人'变量,像这样:__ourBots = [] 我明白,在Python中没有真正的私有变量,所以我可以从我的单元测试。 –
感谢您的帮助,我将控制器的顶部添加到了我的问题 –