unittest

# -*- coding: utf-8 -*-
import unittest


def compare_string(s1, s2):
    if s1 == s2:
        return True
    else:
        return False


class MyFirstTest(unittest.TestCase):
    def setUp(self):
        #  就是上述 4 個重要觀念中的 Test fixture ,在這個方法中,我們可以把一些變數初始化以供測試用
        self.default_greeting = "Hello"  # 初始化變數 default_greeting

    def test_compare_string(self):  # Test case 1
        test_greeting = "Hellx"
        self.assertFalse(compare_string(self.default_greeting, test_greeting))

    def test_compare_hex_string(self):  # Test case 2 無法指定執行順序 依照function名稱排序
        hex_greeting = b"\x48\x65\x6c\x6c\x6f"
        self.assertTrue(compare_string(self.default_greeting, hex_greeting))

    def compare_int_string(self):  # Test case 3 但是因為開頭不是test則不會被執行
        hex_greeting = 0
        self.assertTrue(compare_string(self.default_greeting, hex_greeting))


if __name__ == '__main__':
    tests = unittest.TestLoader().loadTestsFromTestCase(MyFirstTest)  # 載入了我們所撰寫的 Test case ,也就是 MyFirstTest 類別
    unittest.TextTestRunner(verbosity=2).run(tests)

參考資料: https://myapollo.com.tw/2016/09/17/python-unittest-1/ http://www.codedata.com.tw/python/python-tutorial-the-6th-class-1-unittest/

Last updated