单元测试在Python中没有类型?(unittest for none type in python

2019-08-16 23:09发布

我只是想知道我怎么会去测试为不返回任何一个功能。 例如,说我有这样的功能:

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工作?

Answer 1:

所有Python函数返回的东西。 如果没有指定返回值, None返回。 所以,如果你的目标真的是要确保事情不返回一个值,你可以说

self.assertIsNone(self.is_in('a'))

(然而,这可能不是一个函数之间没有明确的返回值,其中一个不区分return None )。



Answer 2:

单元测试的重点是测试一些功能一样。 如果它不是返回一个值,那么什么是它实际上做? 在这种情况下,它不会出现在做什么,因为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'])

由于函数没有返回值,有它没点测试(除非你需要确保它不返回值)。



文章来源: unittest for none type in python?