Spec-Zone.ru › TensorFlow

tf.compat.v1.test.StubOutForTesting

Вспомогательный класс для подмены методов при модульном тестировании.

tf.compat.v1.test.StubOutForTesting()

Пример использования:

Во время тестирования нужно, чтобы os.path.exists() всегда возвращал true.

stubs = StubOutForTesting() stubs.Set(os.path, 'exists', lambda x: 1) ... stubs.CleanUp()

Приведённый выше код заменяет os.path.exists лямбда-выражением, которое возвращает 1. После выполнения части кода, обозначенной ..., метод CleanUp() находит прежнее значение os.path.exists и восстанавливает его.

Методы

CleanUp

Посмотреть исходный код

CleanUp()

Отменяет все вызовы SmartSet() и Set(), восстанавливая исходные определения.

Set

Посмотреть исходный код

Set(
    parent, child_name, new_child
)

Заменяет старое определение дочернего элемента child_name в родительском объекте на new_child.

Родительским объектом может быть модуль, если дочерний элемент — функция на уровне модуля. Родительским объектом также может быть класс, если заменяется метод класса. Именованный дочерний элемент получает значение new_child, а предыдущее определение сохраняется для последующего восстановления при вызове UnsetAll().

Этот метод поддерживает случаи, когда child_name — staticmethod или classmethod родительского объекта.

Аргументы
parent Контекст, в котором нужно изменить атрибут child_name.
child_name Имя изменяемого атрибута.
new_child Новое значение атрибута.

SmartSet

Посмотреть исходный код

SmartSet(
    obj, attr_name, new_attr
)

Заменяет obj.attr_name на new_attr.

Этот метод работает на уровне модуля, класса и экземпляра, сохраняя корректное наследование. Однако он не подменяет типы C, если только тип явно не разрешает это.

Этот метод поддерживает случаи, когда attr_name — staticmethod или classmethod объекта obj.

Примечания
  • Если obj — экземпляр, фактически будет создана заглушка для его класса. Обратите внимание, что метод Set() этого не делает: если obj — экземпляр, заглушка будет создана для него, а не для его класса.
  • При создании заглушки используются встроенные функции getattr и setattr. Поэтому при создании заглушки будут вызваны методы get и set (вероятно, для изменения obj.dict вместо использования getattr() и setattr()).
Аргументы
obj Объект, атрибуты которого нужно изменить.
attr_name Имя изменяемого атрибута.
new_attr Новое значение атрибута.
Исключения
AttributeError Если атрибут не найден.

SmartUnsetAll

Посмотреть исходный код

SmartUnsetAll()

Отменяет вызовы SmartSet(), восстанавливая исходные определения.

Этот метод вызывается автоматически при удалении объекта StubOutForTesting(); вызывать его явно не нужно.

SmartUnsetAll() можно вызывать повторно: последующие вызовы не дают эффекта, если вызовы SmartSet() не выполнялись.

UnsetAll

Посмотреть исходный код

UnsetAll()

Отменяет вызовы Set(), восстанавливая исходные определения.

Этот метод вызывается автоматически при удалении объекта StubOutForTesting(); вызывать его явно не нужно.

UnsetAll() можно вызывать повторно: последующие вызовы не дают эффекта, если вызовы Set() не выполнялись.

__enter__

Посмотреть исходный код

__enter__()

__exit__

Посмотреть исходный код

__exit__(
    unused_exc_type, unused_exc_value, unused_tb
)

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/compat/v1/test/StubOutForTesting

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API