我只是想知道我怎么会去测试为不返回任何一个功能。 例如,说我有这样的功能:
def is_in(char):
my_list = []
my_list.append(char)
然后,如果我是来测试它:
class TestIsIn(unittest.TestCase):
def test_one(self):
''' Test if one character was added to the list'''
self.assertEqual(self.is_in('a'), and this is where I am lost)
我不知道什么断言功能等于,因为没有,我可以把它比作返回值。
编辑:将assertIn工作?
所有Python函数返回的东西。 如果没有指定返回值, None
返回。 所以,如果你的目标真的是要确保事情不返回一个值,你可以说
self.assertIsNone(self.is_in('a'))
(然而,这可能不是一个函数之间没有明确的返回值,其中一个不区分return None
)。
单元测试的重点是测试一些功能一样。 如果它不是返回一个值,那么什么是它实际上做? 在这种情况下,它不会出现在做什么,因为my_list
是局部变量,但如果你的函数实际上看起来是这样的:
def is_in(char, my_list):
my_list.append(char)
然后,你想测试,如果char
实际上是附加到列表中。 您的测试将是:
def test_one(self):
my_list = []
is_in('a', my_list)
self.assertEqual(my_list, ['a'])
由于函数没有返回值,有它没点测试(除非你需要确保它不返回值)。