Spec-Zone.ru › TensorFlow 1.15

tf.test.StubOutForTesting

Класс для подстановки методов при модульном тестировании.

Просмотр псевдонимов

Псевдонимы совместимости для миграции

См. Руководство по миграции для получения более подробной информации.

tf.compat.v1.test.StubOutForTesting

tf.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
)

© 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/r1.15/api_docs/python/tf/test/StubOutForTesting

Spec-Zone.ru

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