【发布时间】:2017-10-03 08:34:39
【问题描述】:
我正在学习如何编写单元测试。 app.py:
class MyClass:
def add(self):
return 2+2
app_test.py:
import app
import unittest
class TestMyClass(unittest.TestCase):
def test_add(self):
self.assertEqual(app.add(), 4)
if __name__ == '__main__':
unittest.main()
运行命令:python -m unittest app_test.TestMyClass。
错误:
Traceback (most recent call last):
File "app_test.py", line 6, in test_add
self.assertEqual(app.add(), 4)
AttributeError: 'module' object has no attribute 'add'
【问题讨论】:
-
请发布您的项目目录结构
-
app.py没有函数add(),但该模块中的类MyClass有方法add(),因此出现错误 -
显然你已经导入了
app.py,这个模块确实没有add属性。也许你应该写类似from app import MyClass然后测试self.assertEqual(MyClass.add(), 4) -
在您的代码中,
app指的是模块,而不是类。您需要创建一个实例:m = app.MyClass(),然后在您的测试代码中调用m.add()。
标签: python python-2.7 unit-testing