私は仮説に不慣れで、同様の再帰オブジェクトのペアを生成する方法を探しています。
単一のオブジェクトに対する私の戦略は、仮説ドキュメントのこの例に似ています。
再帰オブジェクト A と B のペアを取る関数をテストしたいのですが、この関数の副作用はA==B
.
私の最初のアプローチは、次のような 2 つの独立したオブジェクトを取得するテストを作成することです。
@given(my_objects(), my_objects())
def test_is_equal(a, b):
my_function(a, b)
assert a == b
しかし欠点は、この 2 つのオブジェクト間に依存関係があることを仮説が認識していないため、それらが完全に異なる可能性があることです。それは有効なテストであり、私もそれをテストしたいと考えています。
しかし、わずかに異なるだけの複雑な再帰オブジェクトもテストしたいと考えています。
そしておそらく、その仮説は、テストが失敗した非常に異なるオブジェクトのペアを、同じようにテストが失敗したわずかに異なるオブジェクトのペアに縮小できる可能性があります。