[英]How do I test a method (using unittest) that closes a PIL image?
我有一个方法( close()
),它是我的 class ( Img
)的一部分,如下所示:
def close(self):
Image.Image.close(self.image)
我一直在努力寻找一种方法来使用unittest package 测试此方法,因为它不返回任何内容,而且我不知道是否有办法实际检查图像是否关闭。
先感谢您!
您可以使用unittest.mock.patch方法来模拟PIL
package 和Image.Image.close
方法。 调用img.close()
方法后,可以使用assert_call_once_with(*args, **kwargs)检查Image.Image.close
方法是否被调用。
例如
img.py
:
from PIL import Image
class Img:
def __init__(self):
self.image = '123'
def close(self):
Image.Image.close(self.image)
test_img.py
:
import unittest
from unittest import mock
from img import Img
class TestImg(unittest.TestCase):
@mock.patch('img.Image')
def test_close(self, mock_Image):
my_img = Img()
my_img.close()
mock_Image.Image.close.assert_called_once_with('123')
if __name__ == '__main__':
unittest.main()
带有覆盖率报告的单元测试结果:
.
----------------------------------------------------------------------
Ran 1 test in 0.001s
OK
Name Stmts Miss Cover Missing
----------------------------------------------------------------------
src/stackoverflow/63132966/img.py 6 0 100%
src/stackoverflow/63132966/test_img.py 10 0 100%
----------------------------------------------------------------------
TOTAL 16 0 100%
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.