单体测试一直是我的关注。重新接触IronPython以来也想能够尝试下。不过凭着过去的印象我就认为IronPython自身没有提供单体测试框架。正当我尝试寻找一个合适的Python单体测试框架的时候,我意外发现IronPython自带了一个继承PyUnit的单体测试框架。

  使用这个单体测试框架写单体测试很简单:
  1 导入unittest
  2 创建一个从unittest.TestCase继承的类
  3 适用断言方法编写测试方法

  好了,有了这些就马上行动吧。虽然测试对象还没有准备,但为了先睹为快,我们可以使用微软提供的Dictionary。
import unittest
from System.Collections.Generic import Dictionary

class DictionaryTests(unittest.TestCase):
        def setUp(self):
                self.dict = Dictionary[str, int]()
                pass 

        def tearDown(self):
                pass 

        def testInitialized(self):
                self.assertEqual(0, len(self.dict)) 

        def testAdd(self):
                self.dict.Add("lin", 100)
                self.assertEqual(1, len(self.dict))        
                self.assertEqual(100, self.dict["lin"]) 

        def testClear(self):
                self.dict.Add("lin", 100)
                self.dict.Clear()
                self.assertEqual(0, len(self.dict))     

        def testTryGetValue(self):
                result, value = self.dict.TryGetValue("lin")
                self.assertFalse(result)
                self.assertEqual(0, value)        
                self.dict.Add("lin", 100)
                result, value = self.dict.TryGetValue("lin")        
                self.assertTrue(result)
                self.assertEqual(100, value)     

if __name__ == '__main__':
        unittest.main()

  毕竟是xUnit的一种实现,感觉和CppUnit、NUnit和JUnit等其他单体测试框架很相似,因此也很容易入门。但利用好还是很有效果!