2023(春)Python程序设计作业6:基于unitest的Python测试
一、实验要求
- 学习unittest的基本概念和用法
- 能够独立编写unittest测试用例
- 熟悉测试驱动开发(TDD)思想
二、实验环境说明
- 操作系统:Windows
- Python版本:3.11
- 集成开发环境:PyCharm
三、实验目的
- 掌握Python中的单元测试框架unittest的使用方法
- 理解测试驱动开发(TDD)的基本思想和流程
- 培养编写高质量代码的习惯
四、实验题目
- 要求三角型的三个边长:A、B 和C(最大值不超过100)。当三边不可能构成三角形时提示错误。若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等边三角形”,其它情形则返回“一般三角形”。
- 完成:Python程序代码、设计测试用例(覆盖有效等价类、无效等价类),并给出基于unittest测试的代码。
1. 三角形类代码
def IsTriangle(a, b, c):
if not side(a, b, c):
return "不构成三角形"
elif a == b == c:
return "等边三角形"
elif a == b or a == c or b == c:
return "等腰三角形"
else:
return "一般三角形"
def side(a, b, c):
if a + b <= c or a + c <= b or b + c <= a:
return False
return True
2. 测试用例类代码
import unittest
from triangle import IsTriangle
class TestTriangle(unittest.TestCase):
def test_IsTriangle1(self):
result = IsTriangle(10, 10, 10)
self.assertEqual(result, "等边三角形")
def test_IsTriangle2(self):
result = IsTriangle(10, 10, 15)
self.assertEqual(result, "等腰三角形")
def test_IsTriangle3(self):
result = IsTriangle(10, 12, 15)
self.assertEqual(result, "一般三角形")
def test_IsTriangle4(self):
result = IsTriangle(10, 20, 30)
self.assertEqual(result, "不构成三角形")
def test_IsTriangle5(self):
result = IsTriangle(100, 100, 100)
self.assertEqual(result, "等边三角形")
def test_IsTriangle6(self):
result = IsTriangle(0, 10, 15)
self.assertEqual(result, "不构成三角形")
def test_IsTriangle7(self):
result = IsTriangle(-5, -10, -15)
self.assertEqual(result, "不构成三角形")
3. 运行测试用例
if __name__ == '__main__':
suite = unittest.TestSuite()
suite.addTest(TestTriangle("test_IsTriangle1"))
suite.addTest(TestTriangle("test_IsTriangle2"))
suite.addTest(TestTriangle("test_IsTriangle3"))
suite.addTest(TestTriangle("test_IsTriangle4"))
suite.addTest(TestTriangle("test_IsTriangle5"))
suite.addTest(TestTriangle("test_IsTriangle6"))
suite.addTest(TestTriangle("test_IsTriangle7"))
# 执行测试
runner = unittest.TextTestRunner()
runner.run(suite)
4. 运行结果
Testing started at 16:13 ...
Launching unittests with arguments python -m unittest D:\桌面图标存放\作业\大二下\python\test6\test_triangle.py in D:\桌面图标存放\作业\大二下\python\test6
Ran 7 tests in 0.002s
OK
相关推荐
【2021】Python3+Selenium3自动化测试(不含框架)
具备python3语言基础 【学习人群】 1. 手工测试人员学习UI自动化测试技能 2. 开发人员转岗测试开发岗位 3. 如具有丰富的自动化测经验,本课程可能并不满足你学习计划:学
创新!高级!【日前、日内非滚动、日内滚动调度以及实时修正】考虑需求侧响应的智慧楼宇多时间尺度调度策略(Matlab代码实现)
创新!高级!【日前、日内非滚动、日内滚动调度以及实时修正】考虑需求侧响应的智慧楼宇多时间尺度调度策略(Matlab代码实现)内容概要:本文介绍了一种考虑需求侧响应的智慧楼宇多时间尺度调度策略,涵盖日前、日内非滚动、日内滚动调度以及实时修正四个阶段,旨在通过Matlab代码实现对智慧楼宇能源系统的优化管理。该策略结合需求侧响应机制,提升能源利用效率与系统运行经济性,适用于新能源背景下的智能建筑能源调度场景。; 适合人群:具备一定电力系统或能源管理基础知识,熟悉Matlab编程,从事科研或工程应用的研究人员与技术人员。; 使用场景及目标:① 实现智慧楼宇在多时间尺度下的精细化能源调度;② 探索需求侧响应在楼宇级能源管理系统中的建模与应用;③ 借助Matlab仿真平台完成调度策略的开发、测试与优化。; 阅读建议:建议读者结合Matlab代码与相关电力系统调度理论,逐步理解各调度阶段的建模逻辑,重点关注优化目标函数与约束条件的设计,同时推荐通过案例仿真验证策略的有效性。
Vue3 + Flask + MQTT:构建智慧医院患者服务大厅
Vue3 + Flask + MQTT:构建智慧医院患者服务大厅,mysql+flask+mqtt客服+ai
论文复现带有攻击角约束的大机动目标协同攻击制导律(Simulink仿真、Matlab代码实现)
内容概要:本文介绍了一个名为“带有攻击角约束的大机动目标协同攻击制导律”的Matlab/Simulink仿真项目,旨在通过复现相关学术论文中的制导算法,实现对高速、大机动目标的多导弹协同攻击,并满足特定的攻击角度要求。该资源详细提供了Simulink仿真模型和配套的Matlab代码,涉及超扭滑模(STSMC)、快速终端滑模(FTSMC)等先进控制算法的应用,以确保制导律的精确性、鲁棒性及多弹协同的同时攻击性能。项目不仅涵盖算法的数学建模与控制逻辑实现,还通过三维空间仿真验证了针对强机动目标的制导有效性。; 适合人群:具备Matlab/Simulink基础操作能力,从事或研究飞行器制导、导航与控制(GNC)、自动化、航空航天工程、兵器科学与技术等相关领域的研究生、科研人员及工程师。; 使用场景及目标:① 学习和复现带有攻击角约束的协同攻击制导算法;② 研究和对比不同滑模控制技术(如STSMC, FTSMC)在制导系统中的性能表现;③ 利用提供的仿真模型和代码进行二次开发、算法优化及拓展至三维多弹协同攻击场景。; 阅读建议:使用者应结合相关论文的理论部分,仔细阅读和调试所提供的Matlab代码与Simulink模型,重点关注制导律的设计逻辑、各模块之间的信号传递关系以及关键控制参数的设置与整定,以深入理解多弹协同制导与攻击角约束的实现原理。
新能源纯电动汽车驾驶员模块、整车控制器、减速器模块、车速模块等建模Simulink仿真模型
内容概要:本文档提供了新能源纯电动汽车多个关键模块的Simulink仿真模型资源,涵盖驾驶员模块、整车控制器、减速器模块、车速模块等核心子系统,通过模块化建模仿真手段,完整呈现了电动汽车动力传动与控制系统的动态响应机制与交互逻辑。资源不仅包括各独立模块的精细化建模,还涉及系统级集成与联合仿真,适用于开展整车性能分析、控制策略验证及能量管理优化等科研任务,旨在为新能源汽车领域的教学研究与工程开发提供可靠的技术参考与仿真平台支撑。; 适合人群:具备一定自动化、电气工程或车辆工程背景,从事新能源汽车系统仿真、控制算法开发等相关工作的研究人员、高校师生及工程技术人员。; 使用场景及目标:①用于新能源汽车动力系统建模与仿真教学实验;②支撑整车控制策略(如扭矩分配、能量回收)的设计与验证;③作为科研项目中系统级仿真平台的基础组件,提升开发效率与仿真精度; 阅读建议:建议使用者结合实际研究需求,深入理解各模块内部结构与参数设置,灵活调整模型以适配不同工况,并利用提供的完整资源目录进一步拓展学习与应用范围。


