gpt4 book ai didi

python - Python 中的简单单元测试,用于检查输入和预期输出

转载 作者:行者123 更新时间:2023-12-01 09:05:11 24 4
gpt4 key购买 nike

我有一个简单的 Python 程序 ( hello.py ):

name=input()
print("Hello " + name)

就这么简单,没有类,没有函数,什么都没有,只是一个输入和相应的输出。

我的目标只是创造test_hello.pyhello.py 的测试文件。我花了几个小时在互联网上搜索,但我只找到了函数或方法的单元测试,而没有找到简单的输入和输出程序的单元测试。有什么线索吗?提前非常感谢您!

注意:堆栈溢出表明有一个答案:How to assert output with nosetest/unittest in python?但这两个问题非常不同,我的代码中没有函数,并且有一个 input() 。在“答案”中建议代码位于函数内部,并且没有 input() .

最佳答案

最后我想出了解决办法:

import unittest
import os
import subprocess

class TestHello(unittest.TestCase):

def test_case1(self):
input = "Alan"
expected_output = "Hello Alan"
with os.popen("echo '" + input + "' | python hello.py") as o:
output = o.read()
output = output.strip() # Remove leading spaces and LFs
self.assertEqual(output, expected_output)

def test_case2(self):
input = "John"
expected_output = "Hello John"
with os.popen("echo '" + input + "' | python hello.py") as o:
output = o.read()
output = output.strip() # Remove leading spaces and LFs
self.assertEqual(output, expected_output)

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

我有两个测试用例:“Alan”必须打印“Hello Alan”,John 必须打印“Hello John”。

感谢各位提供线索!

关于python - Python 中的简单单元测试,用于检查输入和预期输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52119941/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com