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.4/api_docs/python/tf/compat/v1/test/StubOutForTesting