python中的单元测试?
嘿-我是python新手,我很难掌握python中单元测试的概念 我来自Java——所以单元测试是有意义的,因为——好吧,这里实际上有一个单元——一个类。但是Python类不一定与Java类相同,我使用Python的方式——作为脚本语言——比OOP更具功能性——那么在Python中“单元测试”是什么呢?流动python中的单元测试?,python,unit-testing,Python,Unit Testing,嘿-我是python新手,我很难掌握python中单元测试的概念 我来自Java——所以单元测试是有意义的,因为——好吧,这里实际上有一个单元——一个类。但是Python类不一定与Java类相同,我使用Python的方式——作为脚本语言——比OOP更具功能性——那么在Python中“单元测试”是什么呢?流动 谢谢 如果您进行函数式编程,那么单元就是函数,我建议您对函数进行单元测试我写了一篇关于函数的文章,它的工作原理与其他Python版本相同 还可以看看这些项目: 对于快速而简单的测试,您
谢谢 如果您进行函数式编程,那么单元就是函数,我建议您对函数进行单元测试我写了一篇关于函数的文章,它的工作原理与其他Python版本相同 还可以看看这些项目:
def my_function(n):
"""Return n + 5
>>> my_function(500)
505"""
return n + 5
要运行测试,请导入doctest
并运行doctest.testmod()
,它将运行模块中的所有doctest。您还可以使用doctest.testfile(“…”)
运行其他文件中的所有测试
如果您选中,您将找到使测试预期异常、列表等的方法——解释器将输出的任何内容,加上一些通配符以简化
这是一种在Python模块中编写测试的快速方法,没有太多样板代码,而且在我看来,更容易使它们保持最新(测试就在函数中!)。但我也发现它们有点难看。Python有一个我喜欢的新特性。您还可以阅读《深入Python》一书
以下是(链接)文档中的一个基本示例:
import random
import unittest
class TestSequenceFunctions(unittest.TestCase):
def setUp(self):
self.seq = range(10)
def test_shuffle(self):
# make sure the shuffled sequence does not lose any elements
random.shuffle(self.seq)
self.seq.sort()
self.assertEqual(self.seq, range(10))
# should raise an exception for an immutable sequence
self.assertRaises(TypeError, random.shuffle, (1,2,3))
def test_choice(self):
element = random.choice(self.seq)
self.assertTrue(element in self.seq)
def test_sample(self):
with self.assertRaises(ValueError):
random.sample(self.seq, 20)
for element in random.sample(self.seq, 5):
self.assertTrue(element in self.seq)
if __name__ == '__main__':
unittest.main()
为什么脚本不是一个单元?我不明白你的区别。你能解释一下为什么脚本不是一个单元吗?Python可以是面向对象的,除了作者之外,任何语言都不能使它成为一种函数式语言。否则,是不正确的吗?是的,我会删除链接。@JonathonReinhart它没有消失,只是在(或python 3)。@max谢谢,我已经阅读了链接。