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