python數據驅動舉例

首先下載安裝unittest-data-provider-1.0.1.tar.gz

示例一:

#myclass.py
class myClass():
    def sum(self,num_a,num_b):
        return num_a+num_b
    def sub(self,num_a,num_b):
        return num_a-num_b
#test_myClass.py
import unittest
from unittest_data_provider import data_provider
from myclass import myClass
class TestMyClass(unittest.TestCase):
    
    sum_provider=lambda:(
        (1,1,2),
        (1,2,3),
        (1,3,4),
        )
    @data_provider(sum_provider)
    def test_sum(self,num_a,num_b,res):
        print num_a,num_b,res
        test=myClass()
        self.assertEqual(res,test.sum(num_a,num_b))

實例二:

#sort.py
class Sort():
 
    @staticmethod
    def bubble_sort(arr):
        arr=list(arr)
        if len(arr)<=1:
            return arr
        for i in range(1,len(arr)):
            for j in range(len(arr)-i):
                if arr[j] > arr[j+1]:
                    arr[j],arr[j+1]=arr[j+1],arr[j]
        return arr
         
    @staticmethod
    def quick_sort(arr):
        arr=list(arr)
        if len(arr)<=1:
            return arr
        arr_l = []
        arr_r = []
        arr_m = []
        key = arr[0]
        for i in arr:
            if i<key:
                arr_l.append(i)
            elif i>key:
                arr_r.append(i)
            else:
                arr_m.append(i)
        arr_l = Sort.quick_sort(arr_l)
        arr_r = Sort.quick_sort(arr_r)
        return arr_l + arr_m + arr_r
#test_sort.py
import unittest
from sort import Sort
from unittest_data_provider import data_provider
class TestSort(unittest.TestCase):
     
     quick_sort_provider = lambda :(
         ([]),
         ([7]),
         ([15,12,36,22,1,7,18]),
         ((15,12,36,22,1,7,18)),
     )
     @data_provider(quick_sort_provider)
     def test_quick_sort(self,*arr):
         #print sorted(arr)
         self.assertEquals(sorted(arr),Sort.quick_sort(arr))


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章