繁体   English   中英

使用 Unittest/PyTest/等。 测试适用于文件的 Python function

[英]Using Unittest/PyTest/etc. to test a Python function that works with files

我有一个 function ,它接受一个 .mp3 或 .m4a 文件的路径并返回一个字符串,其中包含使用 TinyTag 从文件中提取的信息(为简洁起见,删除了导入语句):

def create_search_term(path_to_song):
    tag = TinyTag.get(path_to_song)
    artist = tag.artist
    album = tag.album
    search_term = f"{album} {artist} Album Cover"
    return search_term

我已经手动测试过了,它适用于我电脑上的真实 MP3 文件路径。 但是,我正在尝试向该项目添加单元测试。 go 是否有为这样的 function 编写单元测试的最佳实践?

示例用例将"/path/to/bruce/springsteen/born_to_run.mp3"作为输入, "Born to Run Album Cover"作为返回值。

修补TinyTag以生成示例响应,然后针对该响应测试 function 结果:

from mock import patch

def test_create_search_term():
    with patch("__main__.TinyTag") as mock_tinytag:
        mock_tinytag.get.return_value.artist = "Bruce Springsteen"
        mock_tinytag.get.return_value.album = "Born to Run"
        assert create_search_term("foo") == "Born to Run Bruce Springsteen Album Cover"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM