在unittest.mock中加倍对象

时间:2016-03-18 19:10:44

标签: python python-3.x python-unittest python-unittest.mock

我正在尝试使用unittest和unittest.mock在我的应用程序中进行一些测试。

我有两个类MainClass和Caller。我想用双调用者来测试主类。这就是我所拥有的:

man gcc

在测试中我做了:

class MainClass:

 def __init__(self, caller):
   self.caller = caller

 def some_function(self):
   self.caller.function1()
   blab = self.caller.function2()

class Caller:

 # some functions non of which should be accessed in tests


class CallerMock:
  def __init__(self):
   self.items = []

  def function1(self):
   pass

  def function2(self):
    return items

然而问题是没有注释行实际上改变了我的function2的返回值。我怎样才能做到这一点?

我也很满意我不需要double的解决方案,并且调用者的所有函数都将返回None,并且我必须在特定测试中指定函数的返回值。

1 个答案:

答案 0 :(得分:0)

您可以模拟Drama Hyn Mok Yoo A public accountant's salary is far to small for him...etc ,然后修补Caller方法。这样,你不会需要一个双倍的:

call()