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. Java语言基础(回头复习)

    /* 使用变量的时候要注意的问题: A:作用域 变量定义在哪个大括号内,它就在这个大括号内有效. 并且,在同一个大括号内不能同时定义同名的变量. B:初始化值 没有初始化值的变量不能直接使用. 你只要 ...

  2. CUDA: 常量内存与事件

    常量内存: 常量内存用于保存在核函数执行期间不会发生变化的数据,在变量面前添加  __constant__  修饰符: __constant__  Sphere  s[SPHERES]; cudaMe ...

  3. Feature Selection 其一 —— Filter Approach

    这一个部分都将只涉及到选择特征的某个子集的方法,将高纬度的特征空间映射到低维度空间的方法(如PCA)都不会涉及到. 一. 单变量 优点:运算速度快,独立于分类器 缺点:忽略的特征之间的联系,忽略了与分 ...

  4. php远程下载文件

    <?php /* 本源码来源于网络 http://user.qzone.qq.com/292672703 */ header("content-Type: text/html; cha ...

  5. ZOJ - 3861 Valid Pattern Lock 【全排列】

    题目链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3861 思路 先生成全排列,然后判断哪些情况不符合的,剔除就好了 ...

  6. 20145239 《Java程序设计》实验三 实验报告

    详见我的parter20145224的博客:http://www.cnblogs.com/20145224kevs/p/5428892.html 感想:这次的实验看似容易,但很多点都需要注意,比如开源 ...

  7. iOS SDK:iOS调试技巧

    感谢原创 在程序中,无论是你想弄清楚为什么数组中有3个对象而不是5个,或者为什么一个新的玩家开始之后,游戏在倒退——调试在这些处理过程中是比较重要的一部分.通过本文的学习,我们将知道在程序中,可以使用 ...

  8. 【html学习整理】常用标签

    什么是html 超文本标记语言 html语法规则       所有的命令放到<> 大部分成对存在,以<tag>开始,</tag>结束 网页的基本框架,常用的标记 & ...

  9. JAVA- 清除数组重复元素

    清除数组重复元素并打印新数组. import java.util.*; public class Repeat { public static void main(String[] args) { / ...

  10. BZOJ 1637 [Usaco2007 Mar]Balanced Lineup:前缀和 + 差分

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1637 题意: Farmer John 决定给他的奶牛们照一张合影,他让 N (1 ≤ N ...