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

Аргументы
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/api_docs/python/tf/compat/v1/test/StubOutForTesting

Spec-Zone.ru

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