8

物語:

私は現在、現在のソリューションを「壊す」ための特定の入力を見つけようhypothesisとするカスタム生成戦略を使用して関数の単体テストを行っています。私のテストは次のようになります。

from solution import answer

# skipping mystrategy definition - not relevant

@given(mystrategy)
def test(l):
    assert answer(l) in {0, 1, 2}

answer()基本的に、関数が 0 または 1 または 2 を返さない場合に可能な入力を探しています。

現在のワークフローは次のようになります。

  • テストを実行する
  • hypothesisを生成する入力を見つけますAssertionError:

    $ pytest test.py 
    =========================================== test session starts ============================================
    ...
    ------------------------------------------------ Hypothesis ------------------------------------------------
    Falsifying example: test(l=[[0], [1]])
    
  • この入力/出力が正当なものであり、関数が正しく機能したかどうかを理解しようとして、この特定の入力で関数をデバッグします

質問:

[[0], [1]]この偽造生成された例 (この場合) をスキップして、別のものを生成するように依頼するにはどうすればよいhypothesisですか?


質問は次のように解釈することもできます:hypothesis改ざんの例が見つかった場合に終了せず、代わりにさらに改ざんの例を生成するように依頼できますか?

4

1 に答える 1