我是Python新手(我来自Java),在Python3.2中使用mock时遇到了一个问题。在
代码如下:
import gzip
class MyClass:
_content = None
_gzipfile = gzip.GzipFile
def __init__(self, content):
self._content = content
def my_method(self):
# Code ...
gzipper = self._gzipfile(fileobj=data)
return gzipper.read()
import unittest
from mockito import *
class MyClassTest(unittest.TestCase):
def my_method_test(self):
gzipfile = mock
myclass = MyClass()
myclass._gzipfile = mock
myclass.my_method
我想对我的方法进行单元测试(我将mockito库用于mocks)。但当我执行测试时,我收到的信息是:
^{pr2}$在本例中,我被迫使用命名参数调用GzipFile对象。在
有没有一种很好的方法来模拟这个gzip文件对象(以及类似的对象)?在
您看到的
TypeError
是因为您正在将myclass._gzipfile
分配给mockito.mock
类对象。因此,当my_method
使用关键字参数fileobj=data
调用_gzipfile
,它实际上是在调用mockito.mock
类,从而调用其不理解此参数的__init__
方法。在这样的事情应该行得通。它仍然不是一个理想的单元测试,因为它依赖于gzip.gzip文件,但它应该有助于你开始。在
相关问题 更多 >
编程相关推荐