ユニットテストの書き方 †上の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() |