1
我是Python新手(我來自Java),我在使用Python3.2中的mocks時遇到了一個問題。如何在Python3中用構造函數模擬對象?
下面是代碼:
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
我想單元測試我的方法(我使用嘲笑LIB的Mockito)。但是當我執行測試時,我收到了:
TypeError: __init__() got an unexpected keyword argument 'fileobj'
在這種情況下,我不得不使用命名參數調用GzipFile對象。
有沒有一種很好的方式來模擬這個GzipFile對象(和類似的)?
'__init'是一個錯字還是一個實際的錯誤? – Arafangion
這不是一個錯字,雙下劃線使斜體文本,我不知道如何逃避它們...所以我騙了 – Guillaume
啊,那麼,在這種情況下,我建議添加一個預計'fileobj'參數的初始化程序。 – Arafangion