被测函数
============被测函数=============
#coding:utf-8
class 世卫计算方法():
"""标准体重 标准体重正负10﹪为正常体重 标准体重正负10﹪~20﹪为体重过重或过轻 标准体重正负20﹪以上为肥胖或体重不足 超重"""
def 男性(self,身高厘米,体重公斤):
标准 = (身高厘米-80)*70/100
return (self.计算(标准,体重公斤))
def 女性(self,身高厘米,体重公斤):
标准 = (身高厘米-70)*60/100
return(self.计算(标准, 体重公斤))
def 计算(self,标准,实际):
if (实际 - 标准*1.2 >= 0):
return "过重"
if (实际 - 标准*0.8 <= 0):
return "过轻"
if (实际 - 标准*1.1 >= 0):
return "偏重"
if (实际 - 标准*0.9 <= 0):
return "偏轻"
return "正常"
if __name__ == '__main__':
世卫 = 世卫计算方法()
世卫.男性(身高厘米=170,体重公斤=60)
?普通单元测试
#coding:utf-8
from unittest import TestCase
from fat import 世卫计算方法
class Test_fat(TestCase):
def test_man(self):
实际结果 = 世卫计算方法().男性(身高厘米=170, 体重公斤=60)
assert (实际结果 == "正常")
def test_woman(self):
实际结果 = 世卫计算方法().女性(身高厘米=170, 体重公斤=160)
assert(实际结果 == "正常")
?ddt单元测试
#coding:utf-8
import ddt
from unittest import TestCase
from fat import 世卫计算方法
testman=[
{"身高":100,"体重":100,"预期结果":"过重"},
{"身高":170,"体重":150,"预期结果":"过重"},
{"身高":188,"体重":170,"预期结果":"过重"}
]
testwoman=[
{"身高":100,"体重":100,"预期结果":"过重"},
{"身高":170,"体重":150,"预期结果":"过重"},
{"身高":188,"体重":170,"预期结果":"过重"}
]
@ddt.ddt
class Test_fat(TestCase):
@ddt.data(*testman)
def test_man(self,testman):
实际结果 = 世卫计算方法().男性(身高厘米=testman["身高"], 体重公斤=testman["体重"])
assert (testman["预期结果"] == 实际结果)
@ddt.data(*testwoman)
def test_woman(self,testwoman):
实际结果 = 世卫计算方法().男性(身高厘米=testwoman["身高"], 体重公斤=testwoman["体重"])
assert (testwoman["预期结果"] == 实际结果)
?测试套件
#coding:utf-8
import unittest
from unittest import TestCase
import os
from fat import 世卫计算方法
class Test_fat(TestCase):
def test_man(self):
实际结果 = 世卫计算方法().男性(身高厘米=170, 体重公斤=60)
assert (实际结果 == "正常")
def test_woman(self):
实际结果 = 世卫计算方法().女性(身高厘米=170, 体重公斤=160)
assert(实际结果 == "过重")
if __name__ == '__main__':
runner = unittest.TextTestRunner(verbosity=2)
suite1 = unittest.TestSuite() # 建立测试套件
suite1.addTests([Test_fat('test_man'), Test_fat('test_woman')])
runner.run(suite1)
suite2 = unittest.TestSuite() # 建立测试套件
suite2.addTests([Test_fat('test_man')])
runner.run(suite2)
# os.system("python -m unittest -v test_fat_suite.py")
|