在python中模拟超类方法

时间:2015-12-16 16:44:08

标签: python unit-testing python-unittest python-mock

我正在实施以下课程:

class TestInitializeConnection(TestMyDriver)

超类(TestMyDriver)是一个TestCase,意思是:

class TestMyDriver(test.TestCase):
超类有一个名为driver的属性,它基本上是对经过测试的驱动程序的模拟,它声明如下:

self.driver = mocks.MyDriver()

现在在我的(TestInitializeConnection)中我想实现以下测试:

def test_initialize_connection(self):
    self.driver.initialize_connection(self.volume, self.connector)

在函数 initialize_connection 的代码中的某处,有一个被调用的私有方法

specs = self._get_specs(volume)

我想让我的测试告诉 _get_specs(volume)的这个调用返回一个特定的值,例如一个值为的字典: {' iops':100,' bandwith':200}

这样做的最佳方式是什么?

谢谢, 马坦

1 个答案:

答案 0 :(得分:0)

嘲笑它。

def test_initialize_connection(self):
  with mock.patch.object(
      self.driver, 
      '_get_specs', 
      return_value='your_fake_value') as mock_specs:
    # Do something with self.driver