我尝试使用unittest
为某些代码编写单元测试:
https://docs.python.org/3/library/unittest.html
假设我写的每个测试都需要导入math
,os
和datetime
模块。现在我在我写的每个测试中导入它们:
#...code for which I'm writing the unit tests...
import unittest
class TestMyCode(unittest.TestCase):
def test_method_1(self):
# unit test for method 1
import math
import os
import datetime
.
.
def test_method_2(self):
# unit test for method 2
import math
import os
import datetime
.
.
if __name__ == "__main__":
unittest.main()
为避免代码重复,是否可以在类级别导入一次?这样:
#...code for which I'm writing the unit tests...
import unittest
class TestMyCode(unittest.TestCase):
import math
import os
import datetime
def test_method_1(self):
# unit test for method 1
.
.
def test_method_2(self):
# unit test for method 2
.
.
if __name__ == "__main__":
unittest.main()
导致错误
NameError: name 'math' is not defined
所以它显然不是正确的做法。
编辑为了清楚起见,我编写单元测试的代码(实际上只由两个方法组成)和(两个)单元测试都在同一个模块,我们称之为MyCode.py
。