Tôi hiện đang học python trong preperation cho một lớp học trong mùa hè và đã bắt đầu bằng cách thực hiện các loại heaps và cấu trúc dữ liệu dựa trên ưu tiên.Đơn vị kiểm tra giao diện trong Python
Tôi bắt đầu viết một bộ kiểm thử đơn vị cho dự án nhưng gặp khó khăn trong việc tạo ra một thử nghiệm đơn vị chung mà chỉ kiểm tra giao diện và không biết thực hiện thực tế.
Tôi tự hỏi nếu nó có thể làm điều gì đó như thế này ..
suite = HeapTestSuite(BinaryHeap())
suite.run()
suite = HeapTestSuite(BinomialHeap())
suite.run()
gì Tôi hiện đang làm chỉ cảm thấy ... sai (đa kế thừa? ACK!) ..
class TestHeap:
def reset_heap(self):
self.heap = None
def test_insert(self):
self.reset_heap()
#test that insert doesnt throw an exception...
for x in self.inseq:
self.heap.insert(x)
def test_delete(self):
#assert we get the first value we put in
self.reset_heap()
self.heap.insert(5)
self.assertEquals(5, self.heap.delete_min())
#harder test. put in sequence in and check that it comes out right
self.reset_heap()
for x in self.inseq:
self.heap.insert(x)
for x in xrange(len(self.inseq)):
val = self.heap.delete_min()
self.assertEquals(val, x)
class BinaryHeapTest(TestHeap, unittest.TestCase):
def setUp(self):
self.inseq = range(99, -1, -1)
self.heap = BinaryHeap()
def reset_heap(self):
self.heap = BinaryHeap()
class BinomialHeapTest(TestHeap, unittest.TestCase):
def setUp(self):
self.inseq = range(99, -1, -1)
self.heap = BinomialHeap()
def reset_heap(self):
self.heap = BinomialHeap()
if __name__ == '__main__':
unittest.main()