如何使用随机值验证单元测试
发布时间:2020-12-05 03:48:56 所属栏目: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) (编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读