如何使用随机值验证单元测试
发布时间:2020-12-05 02:20:38 所属栏目:Python 来源:互联网
导读:如何使用随机值验证单元测试? 我需要保证gen_age返回15到99之间的整数,但是这段代码不正确. import randomimport unittestdef gen_age(): # generate integer between 15 and 99 return random.randint(15, 99)class AgeTest(unittest.Te
|
如何使用随机值验证单元测试?
import random
import unittest
def gen_age():
# generate integer between 15 and 99
return random.randint(15,99)
class AgeTest(unittest.TestCase):
def setUp(self):
self.a = gen_age()
def test_choice(self):
element = random.choice(self.a)
self.assertTrue(element in self.a)
def test_sample(self):
for element in random.sample(self.a,98):
self.assertTrue(element in self.a)
if __name__ == '__main__':
unittest.main()
解决方法测试类似行为的最佳方法是将种子设置为Random对象.随机包提供Random类.随机实例具有与随机包相同的方法; random(),randint(),sample(),…此外,Random接受种子.向Random添加种子使其输出确定性.例如, from random import Random random = Random(666) assert random.randint(0,1000) == 467 # will never break 因此,您希望将您的功能测试为 from random import Random
import unittest
random = Random()
def gen_age():
# generate integer between 15 and 99
return random.randint(15,99)
class AgeTest(unittest.TestCase):
def setUp(self):
global random
random = Random(666)
def test_gen_age(self):
self.assertEqual(gen_age(),53)
if __name__ == '__main__':
unittest.main()
请注意,如果您的测试不在同一个文件中,则需要使用unittest.mock.patch随机修补.这样的事情应该有效 from random import Random
from package.file import gen_age
import unittest
class AgeTest(unittest.TestCase):
def setUp(self):
self.random = Random(666)
@patch('package.file.random')
def test_gen_age(self,random):
random.randint._mock_side_effect = self.random.randint
self.assertEqual(gen_age(),53) (编辑:哈尔滨站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Python统计python文件中代码,注释及空白对应的行数示例【测
- 使用Python全局变量的动态类的最佳方法()
- python – 具有超类类名称的子类变量
- python – Aiohttp,Asyncio:RuntimeError:事件循环已关闭
- 是否有一种标准方法来声明不支持旧的python版本?
- python:re.sub的replace函数不接受额外的参数 – 如何避免
- django芹菜 – 如何发送request.FILES [‘photo’]到任务
- 为什么python设计为str(无)返回’None’而不是空字符串?
- 想在Jupyter Notebook(Anaconda)中保存并运行Python脚本
- python – 不同的标准在大熊猫vs numpy
推荐文章
站长推荐
- python – Numpy相当于if / else list comprehen
- AIX上的Python:我的选择是什么?
- 使用Mercurial或Git分支处理数据库分支的标准或最
- python – 改变seaborn heatmap颜色条上的刻度尺
- 如何从python源代码中删除注释和doc字符串?
- Python – Multiprocessing.processes从可执行文
- Python Popen shell = False导致OSError:[Errno
- python – 使用numpy将alpha通道添加到RGB数组
- python – Celery死于DBPageNotFoundError
- Python进程间通信用法实例
热点阅读
