3

谁能告诉我如何测试用Docopt(Python)编写的cli应用程序?GitHub上有人发了这个,

import unittest
from docopt import docopt
import your.entry.point.of.sum as sum

# you can import the doc string from the sum module
doc = sum.__doc__

# suppose now the doc is:
#     Sum two numbers.
#     Usage: summation.py <x> <y>

# then write your test cases
class TestCLIParser(unittest.TestCase):
    def test_sum(self):
        args = docopt(doc, ["1", "3"])
        self.assertEqual(args["<x>"], "1")
        self.assertEqual(args["<y>"], "3")

   def and_so_on(self):
        ...

我有这个但是有人可以告诉我如何测试程序的输出吗?此示例仅测试参数

4

1 回答 1

0
class TestCLI(unittest.TestCase):
    def test_sum(self):
        cmd = shlex.split("sum 1 3")
        output = subprocess.check_output(cmd)
        self.assertEqual(output, "4")

尽管您可以使用unittest模块来驱动这种测试,但它并不是严格的单元测试。一个简单的求和程序具有简单的输出,在这样的代码中很容易捕获。但是,随着您的程序发展为更复杂的东西,在源代码中保持期望变得更加困难。对于这种测试,我推荐ApprovalTests

于 2016-01-27T16:07:10.560 回答