python - 使用 python 的模拟补丁测试类不起作用
问题描述
我在使用 unittest 模拟和补丁时遇到了困难。我想测试一个特定的类并更改其中的一些属性。
我认为我有一个路径问题,但不知道如何解决它。
#lib.inventory.py
class Inventory(object):
def __init__(self):
self.db = "12"
def do_stuff(self):
return "ok"
#test.py
import unittest
from mock import patch
import time
from lib.inventory import Inventory
#test_case.py
class MyTest(unittest.TestCase):
@patch('lib.inventory.Inventory')
def test_retrieve_project_id(self,mock_inventory):
print "####################"
print Inventory
print mock_inventory
print "####################"
当我运行这个测试时,我应该看到Inventory
和mock_inventory
对象都指向同一个 MagickMock 对象。但事实并非如此:
####################
<class 'lib.inventory.Inventory'>
<MagicMock name='Inventory' id='140594977874320'>
####################
你能告诉我我做错了什么吗?也许我误解了模拟和补丁的概念?谢谢
解决方案
推荐阅读
- laravel - Laravel where and where not aren't working properly
- swift - Swift Metal Compiler 因 XPC_ERROR_CONNECTION_INTERRUPTED BERT 模型而失败
- sql - 显示用户的连续天数
- javascript - 在javascript中获取引号中的字符串
- c++ - Visual Studio Local 窗格何时会显示 C++ 基本类型而不是实际类型以及如何修复?
- java - 原型 bean 在单例对象中返回多个实例
- javascript - 如何限制用户不要在 reactjs 中选择三个以上的复选框
- ios - 如何强制 WKWebView 打开一个 javascript 弹出窗口
- typescript - 属性 'X 在类型 Y 中缺失,但在类型 Z 类中是必需的
- asp.net-mvc - OWIN - 响应类型
vs
on AuthorizationCodeReceived