如何为方法生成单元测试代码

时间:2008-10-20 09:36:51

标签: python unit-testing

我想编写单元测试代码来测试我的应用程序代码。我有不同的方法,现在想在python脚本中逐个测试这些方法。 但我不怎么写。任何人都可以给我一些python中单元测试的小代码示例。 我很感激

3 个答案:

答案 0 :(得分:7)

阅读unit testing framework sectionPython Library Reference

文档中的basic example

import random
import unittest

class TestSequenceFunctions(unittest.TestCase):

    def setUp(self):
        self.seq = range(10)

    def testshuffle(self):
        # make sure the shuffled sequence does not lose any elements
        random.shuffle(self.seq)
        self.seq.sort()
        self.assertEqual(self.seq, range(10))

    def testchoice(self):
        element = random.choice(self.seq)
        self.assert_(element in self.seq)

    def testsample(self):
        self.assertRaises(ValueError, random.sample, self.seq, 20)
        for element in random.sample(self.seq, 5):
            self.assert_(element in self.seq)

if __name__ == '__main__':
    unittest.main()

答案 1 :(得分:4)

最好从给定的unittest示例开始。一些标准的最佳实践:

  • 将所有测试放在项目根目录的tests文件夹中。
  • 为您正在测试的每个python模块编写一个测试模块。
  • 测试模块应以单词test开头。
  • 测试方法应以单词test开头。

当你对unittest感到满意时(并且它不应该花费很长时间),它有一些很好的扩展,当你的测试数量和范围增加时,它将使生活更轻松:

  • nose - 轻松找到并运行所有测试等等。
  • testoob - 彩色输出(以及更多,但这就是我使用它的原因)。
  • pythoscope - 尚未尝试过,但这会自动为您的应用生成(失败)测试存根。应该节省大量编写样板代码的时间。

答案 2 :(得分:1)

以下是example,您可能希望在pythons unit testing上阅读更多内容。