, в пункте, начинающемся "Настроить возвращаемые значения в методах экземпляров для пропатченного класса ..."

у макетировать методы для любого экземпляра некоторого класса в производственном коде, чтобы облегчить тестирование. Есть ли в Python библиотека, которая могла бы облегчить это?

По сути, я хочу сделать следующее, но в Python (следующий код - Ruby, использующий библиотеку Mocha):

  def test_stubbing_an_instance_method_on_all_instances_of_a_class
    Product.any_instance.stubs(:name).returns('stubbed_name')
    assert_equal 'stubbed_name', SomeClassThatUsesProduct.get_new_product_name
  end

Из вышесказанного важно отметить, что мне нужно макетировать его на уровне класса, поскольку мне действительно нужно макетировать методы в экземпляре, созданном объектом, который я тестирую.

Случай использования:

У меня есть классQueryMaker который вызывает метод на экземпляреRemoteAPI, Я хочу издеваться надRemoteAPI.get_data_from_remote_se,rver способ вернуть некоторую константу. Как мне сделать это в тесте, не помещая особый случай вRemoteAPI код, чтобы проверить, в какой среде он работает.

Пример того, что я хотел в действии:

# a.py
class A(object):
    def foo(self):
        return "A's foo"

# b.py
from a import A

class B(object):
    def bar(self):
        x = A()
        return x.foo()

# test.py
from a import A
from b import B

def new_foo(self):
    return "New foo"

A.foo = new_foo

y = B()
if y.bar() == "New foo":
    print "Success!"

Ответы на вопрос(1)

Ваш ответ на вопрос