Как дразнить бесплатную функцию в Python?

У меня есть программа Python с глобальной функцией, которая является болезненной для тестирования (ей нужен большой набор данных для работы правильно). Что лучший способ состоит в том, чтобы обойти это при тестировании функций, которые называют его?

Я нашел, что следующие работы (но это заставляет меня чувствовать себя грязным для использования его).

нечто модуля:

def PainLiesHere():
  return 4; #guaranteed to be random

тест модуля

import foo

def BlissLiesHere():
  return 5

foo.PainLiesHere = BlissLiesHere

# test stuff
8
задан BCS 1 July 2010 в 00:49
поделиться

1 ответ

Это отличный способ сделать это. Пока вы знаете, что BlissLiesHere не меняет общего поведения тестируемого вами юнита ...

РЕДАКТИРОВАТЬ:

Это то, что делается со всеми приятными дополнениями, которые они предоставляют различными типами имитирующих библиотек, такими как Mock , Mox и т. д.

8
ответ дан 5 December 2019 в 20:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: