【问题标题】:python mocking configobj's return valuepython mocking configobj 的返回值
【发布时间】:2018-06-27 02:07:17
【问题描述】:

我有一个方法,我想为其创建一个单元测试。 ConfigObj 只是一个用于解析配置文件的库。方法很简单:

from configobj import ConfigObj


def read_name():
    conf = ConfigObj('/data/myfile')
    return conf['name'] 

conf['name'] 返回文件中 'name' 设置的字符串值。 我正在尝试编写一个单元测试来模拟这种返回行为,但我在 conf ['name'] 上遇到了“KeyError”。看起来 conf 实例根本没有被嘲笑。

到目前为止我的测试:

@mock.patch('configobj.ConfigObj')
def test_read_name(self, mock_configobj):
    config = mock_configobj.return_value
    config.__getitem__.side_effect = 'tom'
    self.assertEqual(read_name(), 'tom') 

【问题讨论】:

    标签: python unit-testing mocking patch


    【解决方案1】:

    事实证明这很简单

    @patch('configobj.ConfigObj.__getitem__', return_value='tom')
        def test_get_name(self, mock_configobj)
        self.assertEqual(read_name(), 'tom')
    

    【讨论】:

      猜你喜欢
      • 2021-07-06
      • 2019-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-24
      • 2012-09-06
      相关资源
      最近更新 更多