import unittest
import random class Operation(object): def __init__(self, num1=0, num2=0):
if not (0 <= num1 <= 10 and 0 <= num2 <= 10):
raise OutOfRangeError('number out of range (must be 0~10)')
if not isinstance(num1, int) or not isinstance(num2, int):
raise NotIntegerError('non‐integers can not be operate')
self.operate_num1 = num1
self.operate_num2 = num2 def get_result(self):
pass class AddOp(Operation): def get_result(self):
return self.operate_num1 + self.operate_num2 class MinusOp(Operation): def get_result(self):
return self.operate_num1 - self.operate_num2 class MultiOp(Operation): def get_result(self):
return self.operate_num1 * self.operate_num2 class DivideOp(Operation): def get_result(self):
return self.operate_num1 / self.operate_num2 class OperationFactory(object): @staticmethod
def choose_operation(op):
if op == '+':
return AddOp()
elif op == '-':
return MinusOp()
elif op == '*':
return MultiOp()
elif op == '/':
return DivideOp() class OutOfRangeError(ValueError):
pass class NotIntegerError(ValueError):
pass class KnownValues(unittest.TestCase): def test_add_op(self):
"""测试加法运算是否正确"""
ope_obj = OperationFactory.choose_operation('+')
for i in range(0, 11):
ope_obj.operate_num1 = i
ope_obj.operate_num2 = random.randint(1, 10)
sum1 = ope_obj.operate_num1 + ope_obj.operate_num2
sum2 = ope_obj.get_result()
self.assertEqual(sum1, sum2) def test_out_of_range(self):
"""测试出界"""
for i in [-1, 11]:
operate_num1 = i
self.assertRaises(OutOfRangeError, Operation, operate_num1) def test_integer(self):
"""测试浮点数"""
operate_num1 = 0.5
self.assertRaises(NotIntegerError, Operation, operate_num1) if __name__ == '__main__':
unittest.main()

python unittest模块的更多相关文章

  1. Python unittest模块心得(一)

    关于unittest模块的一些心得,主要是看官网的例子,加上一点自己的理解,官网地址:https://docs.python.org/3.6/library/unittest.html 基础概念介绍: ...

  2. Python unittest模块心得(二)

    基础概念介绍请参看: http://www.cnblogs.com/frost-hit/p/8295818.html 组织测试用例 unittest.TestSuite(tests=()): 除了使用 ...

  3. python unittest自动测试框架

    编写函数或者类时进行测试,确保代码正常工作 python  unittest 模块提供了代码测试工具.按照定义测试包括两部分:管理测试依赖库的代码(称为‘固件’)和测试本身. 单元测试用于核实函数的某 ...

  4. Python3+Selenium2完整的自动化测试实现之旅(六):Python单元测试模块Unittest运用

    一.Unittest单元测试框架简介 Unitest是Python下的一个单元测试模块,是Python标准库模块之一,安装完Python后就可以直接import该模块,能在单元测试下编写具体的测试用例 ...

  5. python的单元测试unittest模块

    首先需要导入unittest模块 import unittest import  HTMLTestRunner # TestCase 也就是测试用例## TestSuite 多个测试用例集合在一起,就 ...

  6. selenium + python自动化测试unittest框架学习(四)python导入模块及包知识点

    在写脚本的时候,发现导入某些模块,经常报错提示导入模块失败,这里来恶补下python导入模块的知识点. 1.模块导入时文件查找顺序 在脚本中,import xxx模块时的具体步骤: (1)新建一个mo ...

  7. python unittest基本介绍

    python内部自带了一个单元测试的模块,pyUnit也就是我们说的:unittest 1.介绍下unittest的基本使用方法: 1)import unittest 2)定义一个继承自unittes ...

  8. 从python run 和python unittest两种eclipse运行方式深入理解if __name__ == "__main__"

    在写一个简单的python测试程序的时候,发现eclipse中Run as "Python run 和 Python unittest”结果不一样?为什么会不一样? 先贴一下代码段: # - ...

  9. python unittest 测试笔记(一)

    测试最基本的原理就是比较预期结果是否与实际执行结果相同,如果相同则测试成功,否则测试失败. python 单元测试官方文档: [Python: 2.7] (https://docs.python.or ...

随机推荐

  1. Spring项目中使用jackson序列化key为对象Map

    1.注入ObjectMapper2.注册类HistoricTaskInstance的序列化和反序列化类HistoricTaskInstanceKeySerializer,HistoricTaskIns ...

  2. ubuntu安装opencv(自己编译)

    如果只需要python的,只需pip install opencv-python,然后apt-get一下下面第一点的东东. 1/ sudo apt-get install build-essentia ...

  3. 【zabbix】zabbix3.0部署手册

    1.环境准备 Centos 6.X 2.数据库准备 默认centos yum源中mysql包的版本号为5.1,为了能使zabbix 3.0能达到最好的性能效果,安装最新版的mysql数据库. yum ...

  4. python之virtualenv 与 virtualenvwrapper 详解

    在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题: 亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难. 此时,我们需要对于不同的工程使用 ...

  5. PAT 乙级 1084. 外观数列 (20) 【字符串】

    题目链接 https://www.patest.cn/contests/pat-b-practise/1084 思路 用字符串模拟 然后要注意一点 它是连续的 才并在一起 就比如说 d, d1, d1 ...

  6. 磁卡ID卡IC卡的区别【转】

    本文转载自:https://blog.csdn.net/trap94/article/details/50614451 今天被一个朋友问到ID卡和IC卡有什么区别,还真给问住了.虽然平时经常用到这些卡 ...

  7. CodeForces - 540D Bad Luck Island —— 求概率

    题目链接:https://vjudge.net/contest/226823#problem/D The Bad Luck Island is inhabited by three kinds of ...

  8. RQNOJ 514 字串距离:dp & 字符串

    题目链接:https://www.rqnoj.cn/problem/514 题意: 设有字符串X,我们称在X的头尾及中间插入任意多个空格后构成的新字符串为X的扩展串,如字符串X为”abcbcd”,则字 ...

  9. static语句块的执行时间

    package utfTest; public class Test01 { public static void main(String[] args) { //Person.show(); Sys ...

  10. SSH中的Hibernate

    SSH中的Hibernate 就是DAO连接数据库对数据进行实际操作,做了架构简化,对数据库的操作.