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 — staticmethod или classmethod родительского объекта.
| Аргументы | |
|---|---|
parent | Контекст, в котором нужно изменить атрибут child_name. |
child_name | Имя изменяемого атрибута. |
new_child | Новое значение атрибута. |
SmartSet
SmartSet(
obj, attr_name, new_attr
)
Заменяет obj.attr_name на new_attr.
Этот метод работает на уровне модуля, класса и экземпляра, сохраняя корректное наследование. Однако он не подменяет типы C, если только тип явно не разрешает это.
Этот метод поддерживает случаи, когда attr_name — staticmethod или classmethod объекта obj.
| Примечания | |
|---|---|
|
| Аргументы | |
|---|---|
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