gpt4 book ai didi

python - 如何为单元测试模拟 .mpg 文件?

转载 作者:行者123 更新时间:2023-11-28 21:27:19 26 4
gpt4 key购买 nike

好的。我有一个运行此命令的类:

ffmpeg_command = "ffprobe -v quiet -print_format json -show_format -show_streams %s" % self.absolute_path

其中 self.absolute_path 是电影的路径,比方说 .mpg 文件。

我用于测试的文件有 4GB 大,我不想在我的 GIT 存储库中提交它。

所以我想模拟这个文件并创建一个名为:

mock.mpg

当作为 ffprobe 命令的输入提供时,它将返回与实际 mpg 电影相同的字符串。这可能吗?

或者我应该选择什么其他方法?

这是我的课:

  class Movie(object):

absolute_path = None
info = None

def __init__(self, path):
self.absolute_path = "%s/%s" % (os.getcwd(), path)
if(os.path.exists(self.absolute_path) is False):
raise IOError("File does not exist")

self.info = json.loads(self.get_info())

def get_info(self):
ffmpeg_command = "ffprobe -v quiet -print_format json -show_format -show_streams %s" % self.absolute_path
return subprocess.check_output(ffmpeg_command, shell=True)

这就是我将如何对其进行单元测试:

  class MovieTest(unittest.TestCase):

def test_foo(self):
movie = Movie("tests/test_1.mpg") # this file should be a mock file!!!

最佳答案

我建议您包装 ffmpeg 依赖项

为此提供模拟。无论如何,包装外部工具/库是个好主意。如果任何接口(interface)发生变化,您只需要修复包装器,而不是从您的代码到 ffmpeg 的每个连接。 wrapper 只需像纸一样薄即可从简单的单元测试中获益。

关于python - 如何为单元测试模拟 .mpg 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11243092/

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