您的位置:首页 > 编程语言 > Python开发

【脚本语言系列】关于Python测试工具unittest, 你需要知道的事

2017-04-19 16:57 1066 查看

如何使用unittest

编写阶乘函数

def factorial(n):
if n == 0:
return 1

if n < 0:
raise ValueError, "Don't be so negative"

return numpy.arange(1, n+1).cumprod()




2. 编写单元测试

* 正整数,所谓的愉快路径(happy path)

* 边界条件0

* 负整数,将引起错误

class FactorialTest(unittest.TestCase):
def test_factorial(self):
# 对3的阶乘进行测试,应该能通过
self.assertEqual(6, factorial(3)[-1])
numpy.testing.assert_equal(numpy.array([1, 2, 6]), factorial(3))

def test_zero(self):
# 对0的阶乘进行测试,应该能通过
self.assertEqual(1, factorial(0))

def test_negative(self):
# 对负整数的阶乘进行测试,应该不能通过
# 阶乘函数会抛出一个ValueError类型的异常,但我们期望得到一个IndexError类型的异常
self.assertRaises(IndexError, factorial(-10))




3. 运行测试

#-*- coding: utf-8 -*-
import numpy
import unittest

def factorial(n): if n == 0: return 1 if n < 0: raise ValueError, "Don't be so negative" return numpy.arange(1, n+1).cumprod()

class FactorialTest(unittest.TestCase): def test_factorial(self): # 对3的阶乘进行测试,应该能通过 self.assertEqual(6, factorial(3)[-1]) numpy.testing.assert_equal(numpy.array([1, 2, 6]), factorial(3)) def test_zero(self): # 对0的阶乘进行测试,应该能通过 self.assertEqual(1, factorial(0)) def test_negative(self): # 对负整数的阶乘进行测试,应该不能通过 # 阶乘函数会抛出一个ValueError类型的异常,但我们期望得到一个IndexError类型的异常 self.assertRaises(IndexError, factorial(-10))

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


完整代码



测试结果



什么是unittest

测试驱动开发(TDD)是本世纪以来在软件开发领域出现的一项最重要的技术。TDD的一个非常引人注目的地方,是对单元测试的几近狂热的关注。

单元测试用来对一小段代码(通常是一个函数或方法)进行自动化的测试。Python提供了用于单元测试的PyUnit API.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐