pep*_*ppy 18 python unit-testing assertion nonetype
我只是想知道如何测试一个不返回任何东西的函数.例如,说我有这个功能:
def is_in(char):
my_list = []
my_list.append(char)
Run Code Online (Sandbox Code Playgroud)
如果我要测试它:
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)
Run Code Online (Sandbox Code Playgroud)
我不知道断言该函数是什么等于,因为没有返回值我可以将它与之比较.
编辑:会断言工作吗?
Kev*_*nry 31
所有Python函数都返回一些东西 如果未指定返回值,None则返回.因此,如果您的目标确实是确保某些东西不会返回值,那么您可以这样说
self.assertIsNone(self.is_in('a'))
Run Code Online (Sandbox Code Playgroud)
(但是,这不能区分没有显式返回值的函数和没有显式返回值的函数return None.)
单元测试的目的是测试函数所做的事情。如果它没有返回值,那么它实际上在做什么?在这种情况下,它似乎没有做任何事情,因为my_list它是一个局部变量,但如果你的函数实际上看起来像这样:
def is_in(char, my_list):
my_list.append(char)
Run Code Online (Sandbox Code Playgroud)
然后您需要测试是否char实际附加到列表中。你的测试将是:
def test_one(self):
my_list = []
is_in('a', my_list)
self.assertEqual(my_list, ['a'])
Run Code Online (Sandbox Code Playgroud)
由于该函数不返回值,因此无需对其进行任何测试(除非您需要确保它不返回值)。
| 归档时间: |
|
| 查看次数: |
17288 次 |
| 最近记录: |