Python测试函数出现错误问题解决:AssertionError: None != ‘Janis Joplin‘

当使用Python测试函数时,可能会出现AsserttionError,即断言错误。

根据错误提示可知,空值不能和测试期望结果Janis Joplin相同,仔细查看

正在测试的函数并没有返回值,也就是所谓的none,所以才会出现错误。

错误函数代码如下:

def get_formatted_name(first, last):
    """获得一个整洁的完整的姓名"""
    full_name = first+' '+last
    print(full_name.title())

我们发现,单独进行运行代码时,反而没有问题,可是,一旦执行测试代码就会发生断言错误。

测试代码:

import unittest
from name_function import get_formatted_name


class NamesTestCase(unittest.TestCase):
    """测试函数name_function()"""

    def test_first_last_name(self):
        formatted_name = get_formatted_name('janis', 'joplin')
        self.assertEqual(formatted_name, 'Janis Joplin')


if __name__ == '__main__':
    unittest.main()

运行测试代码时会发现traceback:

Traceback (most recent call last):
  File "\test_name_function.py", line 10, in test_first_last_name
    self.assertEqual(formatted_name, 'Janis Joplin')
AssertionError: None != 'Janis Joplin'

当我们把欲测试的函数添加一个返回值时,即:

def get_formatted_name(first, last):
    """获得一个整洁的完整的姓名"""
    full_name = first+' '+last
    return full_name.title()

再重新运行测试代码,就不会发生错误了。

测试结果如下:

Ran 1 test in 0.003s

OK

Process finished with exit code 0

注意:这里有的人可能是:

.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

这是电脑设置问题,但影响不大,句点的作用就是测试完的个数,结果中已经有了数字1,如果数量多的时候,不会有人去一个个数几个句点吧。

注意:

还有会发生不能测试的情况,这里很大可能是unittest调用主函数时,没有条件判断if __name__ == '__main__',即正确代码应为:

if __name__ == '__main__':
    unittest.main()

而不是:

unittest.main()
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值