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
)
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.3/api_docs/python/tf/compat/v1/test/StubOutForTesting