任何人都可以告诉我如何测试用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):
...
我有这个,但有人可以告诉我如何测试程序的输出?此示例仅测试参数
答案 0 :(得分: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。