python中的单元测试?

python中的单元测试?,python,unit-testing,Python,Unit Testing,嘿-我是python新手,我很难掌握python中单元测试的概念 我来自Java——所以单元测试是有意义的,因为——好吧,这里实际上有一个单元——一个类。但是Python类不一定与Java类相同,我使用Python的方式——作为脚本语言——比OOP更具功能性——那么在Python中“单元测试”是什么呢?流动 谢谢 如果您进行函数式编程,那么单元就是函数,我建议您对函数进行单元测试我写了一篇关于函数的文章,它的工作原理与其他Python版本相同 还可以看看这些项目: 对于快速而简单的测试,您

嘿-我是python新手,我很难掌握python中单元测试的概念

我来自Java——所以单元测试是有意义的,因为——好吧,这里实际上有一个单元——一个类。但是Python类不一定与Java类相同,我使用Python的方式——作为脚本语言——比OOP更具功能性——那么在Python中“单元测试”是什么呢?流动


谢谢

如果您进行函数式编程,那么单元就是函数,我建议您对函数进行单元测试

我写了一篇关于函数的文章,它的工作原理与其他Python版本相同

还可以看看这些项目:


对于快速而简单的测试,您可能想看看

要编写测试,您可以将类似交互式解释器会话的内容放在docstring中:

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谢谢,我已经阅读了链接。