pythonのunitestユニットテスト

5050 ワード

Eric書の「Pythonプログラミングの入門から実践への一例」.
まず、テスト関数を定義します.
namefunction.py
#-*- coding:cp936 -*-
def get_formmed_name(first, last):
""" """

full_name = first + ' ' + last
return full_name.title()

 
次に、関数をテストするモジュールを作成します.
#-*- coding:cp936 -*-
from name_function import get_formmed_name
""" """

print "Enter 'q' to quit any time."

while True:
    first = raw_input("
Enter first name:
") if first == 'q': break last = raw_input("Enter last name:") if last == 'q': break formatted_name = get_formmed_name(first,last) print "Formmated name:",formatted_name

 
テストに合格しましたname_functionの関数はその機能を実現することができる.
最後に、ユニットテストとテスト例の作成です.
test_name_function.py
# coding:utf-8

import unittest
from name_function import get_formmed_name

class NamesTestCase(unittest.TestCase):
    """ name_function.py"""

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


# , Python 2.7 unittest.main() , 

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

 
以上のユニットテストモジュールを分析することにより:
インポートユニットテストクラスunittestテストする関数をインポートします.この例はname_です.functionモジュールのget_formatted_name()関数はunittestに継承する.TestCaseのクラスはクラスの中で一連の方法を定義して関数の行為に対して異なる方面のテストを行い、1つのテスト例は1つの方面だけをテストすべきで、テストの目的とテストの内容ははっきりしなければならないことに注意しなければならない.主にassertEqual,assertRaisesなどの断言手法を呼び出し,プログラム実行結果と予想値が一致するか否かを判断する.
転載先:https://www.cnblogs.com/akidongzi/p/10724420.html