TXT文本
概念:一种纯文本格式; 后缀名 .txt
1、TXT文本优点:
1. 编写测试数据方便
2. 使用模块函数读取时便捷
2、使用TXT实现三角形案例参数化-操作步骤
1. 创建txt文本并写入测试数据
2. 编写读取txt模块函数
3. 单元测试-引用JSON读取函数
4. 执行
3、难点分析
1. 如何读取txt文本?
with open(r'../DataXML/三角形.txt','r',encoding='utf-8') as f:
2. 如何去除行尾/n换行符?
line.strip()
4、代码
(1)三角形判断类:sjx.py
class Sjx():
def sjx(self,a,b,c):
# 判断是否为三角形
if a+b>c and a+c>b and b+c>a:
# 判断是否为等边三角形
if a==b and b==c:
return "等边三角形"
elif a==b or a==c or b==c:
return "等腰三角形"
else:
return "普通三角形"
else:
return "不是三角形"
(2)txt数据文件:sjx.txt
2,2,2,等边三角形
2,2,3,等腰三角形
2,3,4,普通三角形
3,2,1,不是三角形
(3)读取txt数据类:read_txt.py
class ReadTxt():
def read_txt(self):
#打开文件流
with open("../data/sjx.txt","r",encoding="utf-8") as f:
#读取所有行
datas=f.readlines()
#新建列表,存储分割后的单行列表数据
lines=[]
#遍历
for data in datas:
#strip():去除字符串前后的回车符,split():字符串以什么做空格
lines.append(data.strip().split(","))
return lines
if __name__ == '__main__':
print(ReadTxt().read_txt()[0])
(4)测试类:test_txt.py
import unittest
from Unittest.code.sjx import Sjx
from Unittest.read_data.read_txt import ReadTxt
#实例化三角形
sjxClass=Sjx()
#实例化读取csv工具
readTxtClass=ReadTxt()
class Test_Txt(unittest.TestCase):
def test1(self):
for i in range(len(readTxtClass.read_txt())):
result=sjxClass.sjx(int(readTxtClass.read_txt()[i][0]),
int(readTxtClass.read_txt()[i][1]),
int(readTxtClass.read_txt()[i][2]))
self.assertEqual(result,readTxtClass.read_txt()[i][3])
print(readTxtClass.read_txt()[i][0],
readTxtClass.read_txt()[i][1],
readTxtClass.read_txt()[i][2],
readTxtClass.read_txt()[i][3],
"-->验证通过")
if __name__ == '__main__':
unittest.main()
运行结果:
Launching Nosetest with arguments D:\Program Files\PyCharm\PyCharm 2017.2.3\helpers\pycharm\_jb_nosetest_runner.py test_txt.py:Test_Txt.test1 in E:\pythonProject\Unittest\unittest
2 2 2 等边三角形 -->验证通过
2 2 3 等腰三角形 -->验证通过
2 3 4 普通三角形 -->验证通过
3 2 1 不是三角形 -->验证通过
.
----------------------------------------------------------------------
Ran 1 test in 0.005s
OK