Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
模仿python类字典_Python_Mocking_Magicmock - Fatal编程技术网

模仿python类字典

模仿python类字典,python,mocking,magicmock,Python,Mocking,Magicmock,我对python相当陌生。我正在尝试使用mock编写单元测试。下面是代码的模式 # mod3.py import mod1.class1 import mod2.class2 d = { "c1": class1 "c2": class2 } def func1(c, v): cl = d[c] o = cl().meth1(v) return o 我想为func1编写一个单元测试 def test_func1(c, v): c, v = mock.Mock(),

我对python相当陌生。我正在尝试使用mock编写单元测试。下面是代码的模式

# mod3.py
import mod1.class1
import mod2.class2

d = {
"c1": class1
"c2": class2
} 

def func1(c, v):
   cl = d[c]
   o = cl().meth1(v)
   return o
我想为func1编写一个单元测试

def test_func1(c, v):
   c, v = mock.Mock(), mock.Mock()
   r = mod3.func1(c,v)
   e = {"key1": "value1"}
   #want to check if the ret val is as expected
我如何使用mock来模拟
cl().meth1(v)

class1和class2是python中的模块。你想要这个吗


class1和class2是python中的模块。你想要这个吗?

可能是重复的谢谢!但我不认为这是一个重复的可能重复的感谢!但是我不认为它是o=cl.func(v)行中的复制品,它应该是cl().func(v)在o=cl.func(v)行中,它应该是cl().func(v)
# cat class1.py
def func(v):
    return v
# cat class2.py
def func(v):
    return v
#cat mock.py
import class1, class2
d = { "c1": class1, "c2": class2 }
def func1(c, v):
    cl = d[c]
    o = cl.func(v)
    return o