Я использую sys.modules['cv2'] = Mock()
, чтобы высмеять модуль OpenCV, но у меня возникли проблемы с использованием assertEqual
, чтобы проверить правильность настройки переменной с глобальной переменной. Я немного упростил код. Я не уверен, правильно ли насмехается.Python mocking global variable
Вот мой блок тестовый файл:
from mock import patch, Mock
sys.modules['cv2'] = Mock()
from MyClass import MyClass
del sys.modules['cv2']
....
def testFunction()
myObject = MyClass()
self.assertEqual(myObject.val, ?) # here i don't know how to test the equality
и файл MyClass.py
:
import module
val1 = cv2.function(1)
val2 = cv2.function(2)
class MyClass():
def _init_(self)
self.val = val1
Если вы делаете 'sys.modules ['cv2'] = Mock()', а затем 'del sys.modules ['cv2']' вы удаляете 'sys.modules ['cv2']' (издевающийся объект) - не имеет большого смысла ... – alfasin
Для меня было чище делать удаление после насмешки. Каждая функция opencv макет во время импорта. Может быть, я ошибаюсь –
Вы удаляете 2 строки после насмешек - не используя насмешливый объект – alfasin