Я новичок в гипотезе и ищу способ генерировать пару похожих рекурсивных объектов.
Моя стратегия для одного объекта похожа на этот пример в документации по гипотезе.
Я хочу протестировать функцию, которая принимает пару рекурсивных объектов A и B, и побочным эффектом этой функции должно быть то, что A==B
.
Мой первый подход заключается в написании теста, который получает два независимых объекта, например:
@given(my_objects(), my_objects())
def test_is_equal(a, b):
my_function(a, b)
assert a == b
Но недостатком является то, что гипотеза не знает, что существует зависимость между этими двумя объектами, и поэтому они могут быть полностьюразные.Это действительный тест, и я тоже хочу его протестировать.
Но я также хочу протестировать сложные рекурсивные объекты, которые немного отличаются друг от друга.
И, возможно, эта гипотеза способна уменьшить паруочень разных объектов, где тест не проходит, для пары только слегка отличающихся объектов, где тест не проходит аналогичным образом.