Python測(cè)試函數(shù)出現(xiàn)AssertionError:None?!=?‘Janis?Joplin‘問(wèn)題及解決
Python測(cè)試函數(shù)出現(xiàn)AssertionError:None != ‘Janis Joplin‘
當(dāng)使用Python測(cè)試函數(shù)時(shí),可能會(huì)出現(xiàn)AsserttionError,即斷言錯(cuò)誤。
根據(jù)錯(cuò)誤提示可知,空值不能和測(cè)試期望結(jié)果Janis Joplin相同,仔細(xì)查看
正在測(cè)試的函數(shù)并沒(méi)有返回值,也就是所謂的none,所以才會(huì)出現(xiàn)錯(cuò)誤。
錯(cuò)誤函數(shù)代碼
如下:
def get_formatted_name(first, last):
"""獲得一個(gè)整潔的完整的姓名"""
full_name = first+' '+last
print(full_name.title())我們發(fā)現(xiàn),單獨(dú)進(jìn)行運(yùn)行代碼時(shí),反而沒(méi)有問(wèn)題,可是,一旦執(zhí)行測(cè)試代碼就會(huì)發(fā)生斷言錯(cuò)誤。
測(cè)試代碼
import unittest
from name_function import get_formatted_name
class NamesTestCase(unittest.TestCase):
"""測(cè)試函數(shù)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()運(yùn)行測(cè)試代碼時(shí)會(huì)發(fā)現(xiàn)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'當(dāng)我們把欲測(cè)試的函數(shù)添加一個(gè)返回值時(shí),即:
def get_formatted_name(first, last):
"""獲得一個(gè)整潔的完整的姓名"""
full_name = first+' '+last
return full_name.title()再重新運(yùn)行測(cè)試代碼,就不會(huì)發(fā)生錯(cuò)誤了。
測(cè)試結(jié)果
如下:
Ran 1 test in 0.003s
OK
Process finished with exit code 0
注意:
這里有的人可能是:
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
這是電腦設(shè)置問(wèn)題,但影響不大,句點(diǎn)的作用就是測(cè)試完的個(gè)數(shù),結(jié)果中已經(jīng)有了數(shù)字1,如果數(shù)量多的時(shí)候,不會(huì)有人去一個(gè)個(gè)數(shù)幾個(gè)句點(diǎn)吧。
注意
還有會(huì)發(fā)生不能測(cè)試的情況,這里很大可能是unittest調(diào)用主函數(shù)時(shí),沒(méi)有條件判斷if __name__ == '__main__',即正確代碼應(yīng)為:
if __name__ == '__main__':
unittest.main()而不是:
unittest.main()
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python?flask?框架使用flask-login?模塊的詳細(xì)過(guò)程
Flask-Login?是一個(gè)?Flask?模塊,可以為?Flask?應(yīng)用程序提供用戶登錄功能,這篇文章主要介紹了Python?flask?框架使用?flask-login?模塊,需要的朋友可以參考下2023-01-01
PyTorch加載模型model.load_state_dict()問(wèn)題及解決
這篇文章主要介紹了PyTorch加載模型model.load_state_dict()問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2023-02-02
Python中調(diào)試模塊pdb與ipdb操作的全面指南
調(diào)試是編程過(guò)程中不可或缺的重要環(huán)節(jié),Python 提供了多種調(diào)試工具,其中 pdb 和 ipdb 是最常用的兩種,下面就跟隨小編一起學(xué)習(xí)一下二者的具體使用吧2025-04-04
Python庫(kù)coala代碼分析和自動(dòng)化檢查改進(jìn)工具使用探索
Python的coala工具是一個(gè)強(qiáng)大的代碼分析和自動(dòng)化改進(jìn)工具,它可以幫助開(kāi)發(fā)人員自動(dòng)化地檢查代碼并提供改進(jìn)建議,本文將詳細(xì)介紹coala的功能和用法,并提供豐富的示例代碼來(lái)幫助大家深入了解它2024-01-01
pycharm中報(bào)ModuleNotFoundError:No?module?named?'tensor
這篇文章主要給大家介紹了關(guān)于pycharm中報(bào)ModuleNotFoundError:No?module?named?'tensorflow'錯(cuò)誤的解決方法,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07
python 三邊測(cè)量定位的實(shí)現(xiàn)代碼
這篇文章主要介紹了python 三邊測(cè)量定位的實(shí)現(xiàn)代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04
OpenCV圖像修復(fù)cv2.inpaint()的使用
這篇博客將介紹如何通過(guò)OpenCV中圖像修復(fù)的技術(shù)——cv2.inpaint() 去除舊照片中的小噪音、筆劃等。并提供一個(gè)可交互式的程序,感興趣的可以了解一下2021-08-08

