Как издеваться над `` частным '' методом тестируемого класса - PullRequest
0 голосов
/ 08 мая 2020

Я не могу имитировать «частный» метод того же класса, который я пытаюсь протестировать.

В mymodule.py:

class MyClass():

  def do_something(self, x: float) -> float:
      return self._get_conf() * x

  def _get_conf(self) -> float:
      return a_value_from_the_network

В mymodule_test.py :

import mock
import parameterized
import mymodule

@parameterized.parameters([
    (0, 0),
    (1, 1.1),
])
@mock.patch('mymodule.MyClass._get_conf')
def test_do_something_math(
    self, x, want, mock_get_conf):
    mock_my_prop.value = prop_value
    mock_get_conf.return_value = 1.1
    got = mymodule.MyClass.do_something(x)
    self.assertAlmostEqual(got, want)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...