Spec-Zone.ru › TensorFlow 2.9

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 является статическим или классовым методом родителя.

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

SmartSet

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

SmartSet(
    obj, attr_name, new_attr
)

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

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

Этот метод поддерживает случай, когда attr_name является статическим или классовым методом 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/versions/r2.9/api_docs/python/tf/compat/v1/test/StubOutForTesting

Spec-Zone.ru

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