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

3

我想编写单元测试代码来测试我的应用程序代码。我有不同的方法,现在想在Python脚本中逐个测试这些方法。 但我不知道如何编写。能否有人给我一个小型的Python单元测试代码示例? 非常感谢。

3个回答

7
请阅读Python库参考手册中有关单元测试框架的章节。可以通过以下链接访问:unittest framework sectionPython Library Reference
下面是文档中的一个基本示例
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()

4

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

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

当你熟悉了 unittest 后(这不应该花费太长时间),还有一些很好的扩展可以使你的测试随着数量和范围的增加而更容易:

  • nose —— 轻松查找并运行所有测试,等等。
  • testoob —— 彩色输出(及更多功能,但这就是我使用它的原因)。
  • pythoscope —— 我没试过,但它会自动生成(失败的)测试存根来为应用程序节省编写样板代码的时间。

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接