twerer 发表于 2015-8-31 09:04:55

python数据驱动举例

首先下载安装unittest-data-provider-1.0.1.tar.gz
示例一:

1
2
3
4
5
6
#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





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#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))




实例二:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#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 > arr:
                  arr,arr=arr,arr
      return arr
         
    @staticmethod
    def quick_sort(arr):
      arr=list(arr)
      if len(arr)<=1:
            return arr
      arr_l = []
      arr_r = []
      arr_m = []
      key = arr
      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





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#test_sort.py
import unittest
from sort import Sort
from unittest_data_provider import data_provider
class TestSort(unittest.TestCase):
      
   quick_sort_provider = lambda :(
         ([]),
         (),
         (),
         ((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))



页: [1]
查看完整版本: python数据驱动举例