問題は、意図的に正しくないコードを修正して、pyUnit テストを実行できるようにすることです。コード内のエラーは、テストを使用して発見され、修正されます。前回のテストでコードにエラーが発生しましたが、それを見つけることができません!
指定されたコード(エラーあり)
def linear( target, list ):
""" returns the position of target,
if not found returns -1"""
position = 0
if len(list)==0:
return -1
else:
while position <= (len(list)+1):
if target == list[position]:
return position
position += 1
return -1
そして私のテスト:
import unittest
# import the module(s) to be tested:
from LinearSearch import *
class TestLinearSearch(unittest.TestCase):
# setUp - run prior to the start of each test case
def setUp(self):
# initialize test fixtures
return
def test_smoke(self):
# very simple test to insure test framework is correct
self.assertTrue(1)
# additional test_xxx methods follow....
def test_emptyList(self):
self.assertEqual(linear(4,[]),-1)
def test_singleChar(self):
self.assertEqual(linear(1,[1]),0)
def test_isInList(self):
self.assertEqual(linear(4,[1,2,3,4,5]),3)
def test_isNotInList(self):
self.assertEqual(linear(8,[1,2,3,4,5]),-1)
if __name__ == '__main__':
unittest.main()
私のエラーを生成するテストは最後のテストです:「test_isNotInList(self)」、それは範囲外のインデックスエラーです...十分に単純なはずですが、少し助けが必要です。