Переопределение функции юнит-теста python / django - PullRequest
0 голосов
/ 25 июня 2010

У меня отнимает много времени метод с предопределенным числом итераций внутри него, который мне нужно проверить:

def testmethod():
    objects = get_objects()
    for objects in objects:
        # Time-consuming iterations
        do_something(object)

Одной итерации достаточно, чтобы проверить меня. Как лучше всего тестировать этот метод только с одной итерацией?

Ответы [ 2 ]

2 голосов
/ 25 июня 2010

Обновление:

Я неправильно прочитал исходный вопрос, вот как я могу решить эту проблему, не меняя исходный код:

Лямбда-вызов для получения объектоввернуть один объект.Например:

from your_module import get_objects

def test_testmethdod(self):
    original_get_objects = get_objects
    one_object = YourObject()
    get_objects = lambda : [one_object,]

    # ...
    # your tests here
    # ...

    # Reset the original function, so it doesn't mess up other tests
    get_objects = original_get_objects
2 голосов
/ 25 июня 2010

Возможно, превратите ваш метод в

def my_method(self, objs=None):
    if objs is None:
        objs = get_objects()
    for obj in objs:
        do_something(obj)

Тогда в своем тесте вы можете вызвать его с помощью пользовательского параметра objs.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...