什么是白盒测试,什么是黑盒测试?
白盒:主要应用于单元测试阶段,主要是对代码级别的测试,针对程序内部的逻辑结构。测试的手段有:语句
覆盖、判定覆盖、条件覆盖、路径覆盖和条件组合覆盖
黑盒: 不考虑程序内部结构和逻辑结构,主要是测试系统的功能是否满足“需求规格说明书”。一般会有一个
输入值和一个输出值,和期望值做比较。
Unittest重要组成
TestFixture
作用:
用于一个测试环境的准备和销毁还原。
功能:
当测试用例每次执行之前需要准备测试环境,每次测试完成后还原测试环境,比如执行前连接数据库、打
开浏览器等,执行完成后需要还原数据库、关闭浏览器等操作。这时候就可以启用testfixture
主要方法:
setUp():准备环境,执行每个测试用例的前置条件;
tearDown():环境还原,执行每个测试用例的后置条件;
setUpClass():必须使用@classmethod装饰器,所有case执行的前置条件,只运行一次;
tearDownClass():必须使用@classmethod装饰器,所有case运行完后只运行一次;
代码:
class CalClass(object):
def add(self,a,b):
c = a+b
return c
def reduct(self,a,b):
c = a-b
return c
# c = CalClass()
# print(c.reduct(1,2))
if __name__ == '__main__':
c = CalClass()
print(c.reduct(1, 2))
进行测试的代码:
import unittest
class Calc_testcase(unittest.TestCase):
def setUp(self) : #测试用例方法执行前的操作
print("start")
def test1(self): #测试用例
resl = 4
self.assertEqual(resl,5)
def tearDown(self) : #测试用例方法执行后的操作
print("end")
if __name__ =="__main__":
unittest.main() #调用测试用例中以test开头的方法
进行测试开发代码:
import unittest
from demo.kaifa import CalClass
c = CalClass()
rr = c.add(2,3)
cc=c.reduct(6,2)
class CalcTestClass(unittest.TestCase):
def setUp(self) -> None:
print("我是setUp")
def test01(self):
self.assertEqual(6,rr)
def test02(self):
self.assertEqual(4,cc)
def tearDown(self) -> None:
print("我是tearDown")
if __name__ == '__main__':
unittest.main()
import unittest
from demo.kaifa import CalClass
from readdate.readcsv import ReadCsv
r = ReadCsv()
lists = r.read_csv()
c = CalClass()
class CalcTestClass(unittest.TestCase):
def setUp(self) -> None:
print("我是setUp")
def test01(self):
for csv_i in lists:
add1 = c.add(int(csv_i[0]),int(csv_i[1]))
self.assertEqual(add1,int(csv_i[2]))
def tearDown(self) -> None:
print("我是tearDown")
if __name__ == '__main__':
unittest.main()