函数get_full_name将大写的名字和姓氏大写并返回全名,如下所示:
full_name = first + ' ' + last
full_name = full_name.title()
以下代码段应该失败,但是正在通过。我正在使用unittest。
formatted_name = get_full_name('janis', 'joplin')
self.assertEqual(formatted_name, 'anis Joplin')
单元测试的输出如下:
Ran 0 tests in 0.000s
OK
为什么该测试应在失败时通过?
完整代码如下:
这是您进行审核的完整代码:
import unittest
def get_full_name(first, last):
full_name = first + ' ' + last
full_name = full_name.title()
return full_name
class NamesTestCase(unittest.TestCase):
def test_first_last_name(self):
formatted_name = get_full_name('janis', 'joplin')
self.assertEqual(formatted_name, 'anis Joplin',)
unittest.main()
答案 0 :(得分:1)
您遇到了缩进错误。您的unittest.main()
通话是在您的班级范围内进行的,应该在全局范围内进行-或更佳的做法是在主要后卫之内,例如
if __name__ == '__main__':
unittest.main()
由于类体内的语句仍在执行,因此仍会调用unittest运行器,但是在调用时,没有定义的unittest.TestCase子类,它可以找到您的Ran 0 tests in 0.000s
输出。 / p>
请注意,如果在NamesTestCases之前添加一个单独的测试类,则会看到即使在错误的位置调用unittest.main()
的情况下,这些测试也可以运行,