我有一个函数,如果文件太大(大于1MB),就会引发异常。我想在不使用真实图像的情况下测试这个函数。我知道有可能在mock_打开的情况下模拟文件对象,但是如何给这个假文件一个大小呢?在
下面是我要测试的函数:
def _check_image_size(img_path):
megabyte = 1048576
if os.path.getsize(img_path) > megabyte:
raise ValueError("Image must be less than or equal to 1MB in size.")
所以,我只想用另一种方式重申这个问题:如何在不使用大于1MB的实际文件的情况下测试这个函数?在
另外,我应该为这个函数写一个测试吗?我是一个没有太多经验的新开发人员。我想测试这个是否太过分了?在
如果您正在测试这个,您应该模拟
os.path.getsize
而使用unittest.mock
模拟的file对象提供了一个read
方法,可能是write
,close
和其他特定于文件对象的函数-但是这个函数对文件系统上的实际文件进行系统stat
调用:在文件系统上无法“看到”模拟的文件对象。在因此,我们要做的是信任
os.path.getsize
works,并将其返回值模拟为“True”和“False”,以编写所需的测试。在模拟函数本身更简单。在
^{1}$或者,不使用
^{pr2}$mock
库(或类似的库),monkey直接修补函数。在莫克是你的朋友
^{1}$我认为测试这样的函数是可以的。在
相关问题 更多 >
编程相关推荐