#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()