hypothesis

hypothesis用于创建单元测试的Python库

安装

pip install hypothesis

 

 

应用:

  利用hypothesis生成测试数据

test.py

def add(a, b):
    return a + b

使用随机数生成测试数据

test1.py

复制代码
import unittest

from random import randint
from test import add

class AddTest(unittest.TestCase):
    def test_case1(self):
        for i in range(10):
            a=randint(-32768,32767)
            b=randint(-32768,32767)
            print(a,b)
            c1=a+b
            c2=add(a,b)
            self.assertEqual(c1,c2)
            
if __name__=="__main__":
    unittest.main()
复制代码

 

 test2.py

复制代码
import unittest
from hypothesis import given, settings
import hypothesis.strategies as st
from test import add

class AddTest(unittest.TestCase):

    @settings(max_examples=10)
    @given(a=st.integers(), b=st.integers())
    def test_case(self, a, b):
        print("a->", a)
        print("b->", b)
        c1 = a + b
        c2 = add(a, b)
        self.assertEqual(c1, c2)

if __name__ == '__main__':
    unittest.main()
复制代码

 

通过@given() 装饰测试用例

调用strategies 模块下面的 integers() 方法生成随机的测试数

@setting()装饰器中通过max_examples用来控制随机数的个数

生成email

复制代码
import unittest
from hypothesis import given, settings
import hypothesis.strategies as st

class AddTest(unittest.TestCase):
    @settings(max_examples=20)
    @given(o=st.emails())
    def test_case(self,o):
        print(o)

if __name__ == '__main__':
    unittest.main()
复制代码

https://hypothesis.readthedocs.io/en/latest/index.html

posted @   慕尘  阅读(644)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2017-06-08 centos7 Minimal安装没有ifconfig
点击右上角即可分享
微信分享提示