2016-10-08 68 views
0

我有一個程序的unittests。作爲新的測試驅動的開發,怎樣才能從給定的測試如何使用提供的unittest編寫程序

例如一個節目,我有這樣的測試:

class MaxMinTest(TestCase): 
"""docstring for MaxMinTest""" 

def test_find_max_min_four(self): 
    self.assertListEqual([1, 4], 
         find_max_min([1, 2, 3, 4]), 
         msg='should return [1,4] for [1, 2, 3, 4]') 

def test_find_max_min_one(self): 
    self.assertListEqual([4, 6], 
         find_max_min([6, 4]), 
         msg='should return [4, 6] for [6, 4]') 

def test_find_max_min_two(self): 
    self.assertListEqual([2, 78], 
         find_max_min([4, 66, 6, 44, 7, 78, 8, 68, 2]), 
         msg='should return [2, 78] for [4, 66, 6, 44, 7, 78, 8, 68, 2]') 

def test_find_max_min_three(self): 
    self.assertListEqual([1, 4], 
         find_max_min([1, 2, 3, 4]), 
         msg='should return [1,4] for [1, 2, 3, 4]') 

def test_find_max_min_identity(self): 
    self.assertListEqual([4], 
         find_max_min([4, 4, 4, 4]), 
         msg='Return the number of elements in the list in a new list if the `min` and `max` are equal') 

在此先感謝。還請分享資源,以便爲像我這樣的初學者學習測試驅動開發。

+0

基於一個單元測試不能生成代碼,你必須拿出它自己。滿足測試的任何東西都是有效的。將其視爲需求清單。順便說一句,你正在尋找像'def find_max_min(seq):return [min(seq),max(seq)]如果len(set(seq)!= 1 else [seq [0]]'' – MisterMiyagi

+0

謝謝。我嘗試和實現你知道在編寫單元測試的任何資源嗎? – kevinsamoei

回答

1

沒有給你答案的代碼,這將使這些測試都通過了,你的方法可以是這樣的:

  • 你在測試?

  • 這個函數是什麼,它返回什麼?

  • 我該如何製作一個測試通過?一旦我做了一個測試通過,我怎麼做另一個測試通過,同時確保以前的測試仍然通過。依此類推,直到所有測試都通過您在函數中編寫的代碼。

因此,要高層回答您的問題。

你正在測試一種叫做MinMax的東西,它暗示了尋找某物的最小值和最大值。這東西是一個函數find_max_min作爲輸入list,並返回一個列表與兩個值。這兩個值的順序是minlistmax,您將傳遞給您的函數。

文檔查看:

+0

Thanks @idjaw。真的有幫助。讓我試試看吧。我想這是一個函數返回一個新的列表的最大和最小數量 – kevinsamoei

相關問題