#freeze
[[プログラム周り]]

*ユニットテストの書き方 [#db20b81f]

上のhuman.pyにユニットテストを書く。

retMaxMinでたとえば、2D6の最大値と最小値を割り出す(2-12)、生成されたインスタンスがその最大値と最小値の間の値を持つか調べる。

     def retMaxMin(self,str):
         (feq,level)=str.split('D')
         max=int(feq)*int(level)
         min=int(feq)*1
         return (max,min)
     
     def testLife(self):
         (mx,mn)=self.retMaxMin(self.f.itl)
         print mx,mn
         assert self.f.life<=mx
         assert self.f.life>=mn

そうすれば、思わぬバグが入り込むことを未然に防ぐことが出来る。

 #This file was originally generated by PyScripter's unitest wizard
 
 import unittest
 import human
 
 class TestHuman(unittest.TestCase):
     def setUp(self):
         self.f=human.ChHash['Fighter']()
         self.m=human.ChHash['Thief']()
 
     def tearDown(self):
         self.f=None
         self.m=None
 
     def testjob(self):
         assert self.f.job=='Fighter'
         assert self.m.job=='Thief'
 
     def retMaxMin(self,str):
         (feq,level)=str.split('D')
         max=int(feq)*int(level)
         min=int(feq)*1
         return (max,min)
     
     def testLife(self):
         (mx,mn)=self.retMaxMin(self.f.itl)
         print mx,mn
         assert self.f.life<=mx
         assert self.f.life>=mn
     def teststrike(self):
         pass
 
     def test__hit(self):
         pass
 
     def test__undice(self):
         pass
     
     def test__attack(self):
         pass
 
 
 if __name__ == '__main__':
     unittest.main()

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS