单元测试参数化之TXT格式

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
发布了240 篇原创文章 · 获赞 77 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/dpl12/article/details/104231724
今日推荐