Издевательский словарь классов Python
Я довольно новичок в питоне. Я пытаюсь использовать макет для написания модульного теста. Вот образец кода.
# 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 ответ
# 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 являются модулями в python. Вы хотите это?