我有以下Python模块要测试:
import sys
def greet():
print(f"Hello, {sys.argv[1]}!")
我已将其设置为脚本入口点,以便:
$ greet World
Hello, World!
现在,我想用pytest进行测试
它使用以下内容创建tests/test_greet.py
文件:
import subprocess
import greet
def test_greet_cli():
result = subprocess.run(["greet", "World"], capture_output=True)
assert b"Hello, World!" in result.stdout
这会引起什么问题吗
<> P>有其他的测试方法,我应该考虑吗?请随意浏览my article,我在其中记录了类似于上述内容的内容。我在那篇文章中建议了两种编写测试的方法,其中之一就是这种方法。如果它会引起任何问题,我不想把它包括在内
你的根本问题是这个函数
当涉及到可测试性时,它是“坏的”,因为它依赖于全局变量。更好的版本应该是:
这将具有相同的功能,但更易于测试
相关问题 更多 >
编程相关推荐