【问题标题】:mocking python class dictionary模拟python类字典
【发布时间】:2017-01-06 05:27:46
【问题描述】:

我对 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

我如何使用 mock 来模拟 cl().meth1(v)

【问题讨论】:

标签: python mocking magicmock


【解决方案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 中的模块。你想要这个吗?

【讨论】:

  • 在 o = cl.func(v) 行中,应该是 cl().func(v)
猜你喜欢
  • 2017-12-04
  • 1970-01-01
  • 1970-01-01
  • 2016-11-12
  • 1970-01-01
  • 2013-03-08
  • 1970-01-01
  • 2023-01-29
  • 2018-08-20
相关资源
最近更新 更多