2023(春)Python程序设计作业6:基于unitest的Python测试

软工211陈思好 2023-春-学生 2023-06-21 21:54:14

一、实验要求
学习unittest的基本概念和用法
能够独立编写unittest测试用例
熟悉测试驱动开发(TDD)思想
二、实验环境说明
操作系统:Windows/Linux/MacOS
Python版本:3.x
集成开发环境:可选,建议使用PyCharm
三、实验目的
掌握Python中的单元测试框架unittest的使用方法
理解测试驱动开发(TDD)的基本思想和流程
培养编写高质量代码的习惯
四、实验题目
要求三角型的三个边长:A、B 和C(最大值不超过100)。当三边不可能构成三角形时提示错误。若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等边三角形”,其它情形则返回“一般三角形”。  
完成:Python程序代码、设计测试用例(覆盖有效等价类、无效等价类),并给出基于unittest测试的代码。

五、实验代码

1. Triangle.py

class Triangle:

    def __init__(self, a, b, c):
        self.a = a
        self.b = b
        self.c = c

    # 判断是否是三角形
    def IsTriangle(self):
        if self.a + self.b > self.c and self.a + self.c > self.b and self.b + self.c > self.a:
            return True
        else:
            return False

    # 返回三角形类型:
    #  一般三角形、等腰三角形、
    #  等边三角形、不构成三角形
    def getType(self):
        if not self.IsTriangle():
            return "不构成三角形"
        elif self.a == self.b == self.c:
            return "等边三角形"
        elif self.a == self.b or self.a == self.c or self.b == self.c:
            return "等腰三角形"
        else:
            return "一般三角形"

2.TestTriangle.py

import unittest
from Triangle import Triangle


class TestTriangle(unittest.TestCase):

    def setUp(self):
        pass

    def tearDown(self):
        pass

    # 有效等价类:3, 4, 5
    def test_IsTriangle_valid(self):
        self.tri = Triangle(3, 4, 5)
        self.assertEqual(self.tri.IsTriangle(), True)

    # 无效等价类:1, 2, 3
    def test_IsTriangle_invalid(self):
        self.tri = Triangle(1, 2, 3)
        self.assertEqual(self.tri.IsTriangle(), False)

    # 有效等价类:2, 2, 3
    def test_GetType_equilateral(self):
        self.tri = Triangle(2, 2, 2)
        self.assertEqual(self.tri.getType(), "等边三角形")

    # 有效等价类:3, 4, 4
    def test_GetType_isosceles(self):
        self.tri = Triangle(3, 4, 4)
        self.assertEqual(self.tri.getType(), "等腰三角形")

    # 有效等价类:3, 4, 5
    def test_GetType_scalene(self):
        self.tri = Triangle(3, 4, 5)
        self.assertEqual(self.tri.getType(), "一般三角形")

    # 无效等价类:1, 2, 3
    def test_GetType_invalid(self):
        self.tri = Triangle(1, 2, 3)
        self.assertEqual(self.tri.getType(), "不构成三角形")


if __name__ == '__main__':
    unittest.main()
 

六、运行结果

 

...全文
572 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
本文精选了2013年的十大小而精的jQuery插件,包括时间轴插件、图文滚动效果、图片标注提示、二维码生成、声音提示、复制内容到剪贴板、金蛋游戏、响应式内容滑动、大转盘抽奖、数字滚动展示、菜单滚动效果、动画效果扩展、表单提交优化、图片放大、菜单切换效果、QQ表情插件、图片旋转、喜欢评级、背景图片拉伸、时间戳转换、分页显示、返回顶部、元素定位、颜色拾取器、文件上传、IP定位、省市联动、翻板抽奖、抽奖程序、倒计时、拍照功能、性能优化、多级手风琴菜单、日期选择器、日期时间选择器、jqGrid应用、Highcharts应用、Ajax应用、视频播放器、滚屏加载、图片延迟加载、开发技巧、网格布局、产品介绍、用户历史记录、滑块选择价格、自动完成提示、登录与退出、内容排序、垂直滚动、排序及过滤、分步注册、图片滚动、图片标题显示、下拉菜单、滚动布局、双向选择、无刷新切换主题、图片切换动画、浮动层跟随滚动、Cookies操作、二级联动菜单、Ajax请求、图片切换效果、多级下拉菜单、信息提示、实时编辑表格、图片幻灯片、往返输入查询、图片裁剪、Ajax分页、内容滑动特效、文字滚动、图表生成、相册画廊、内容滑动、图片放大镜、3D图片切换、网站滑动滚动效果、JS类库和工具、俄罗斯方块、数据库操作、幻灯片、俄罗斯方块、汉字转拼音、打印区域控制、发布微博、多级下拉菜单、信息提示框、Fancybox弹出层、表单验证、表单字段验证、拖动布局、星级评分、jQuery事件绑定、表单验证插件、密码强度检测、图片裁剪、Ajax分页效果、内容滑动特效、文字滚动、图表生成组件、图片放大镜、3D图片切换效果、酷炫网站集合、前端开发库、JavaScript调试工具、jQuery事件方法、图片路径处理、滑动菜单效果、浏览器调试工具、jQuery动画、jQuery事件、ExtJS Grid、JS获取参数、框架外页面刷新、IE关闭处理、WebSocket实现、输出换行、正则处理JSON、jQuery数据属性、性能优化建议、幻灯片插件、图片路径替换、JQuery slideshow问题、加载事件使用、jQuery选择器、正则处理json文本、映射绑定事件、事件冒泡、jQuery方法、事件处理函数、事件绑定方法、事件切换方法、初始化选择器、浏览器拦截、窗口打开问题、滑动菜单效果、鼠标进入容器、不间断滚动、提示效果、gridvi

162

社区成员

发帖
与我相关
我的任务
社区描述
软件工程老师
python 高校 江苏省·南通市
社区管理员
  • juking@ntu
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧