2017-01-06 2 views
1

Я довольно новичок в python. Я пытаюсь использовать mock для написания модульного теста. Вот пример кода.mocking python class dictionary

# 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 

Как бы использовать макет по существу издеваться cl().meth1(v)

+1

Возможный дубликат [mocking functions using python mock] (http://stackoverflow.com/questions/5286390/mocking-functions-using-python-mock) – gmuraleekrishna

+0

Спасибо! но я не думаю, что это дубликат [mocking functions using python mock] (http://stackoverflow.com/questions/5286390/mocking-functions-using-python-mock) – barmd

ответ

0
# 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 

class1 и class2 модули в питон. Вы хотите это?

+0

Я обновил раздел кода – barmd

+0

В строке o = cl.func (v), это будет cl(). func (v) – barmd