仮説へようこそ!
この記事は、 Welcome to Hypothesisの 翻訳 です! 公式ガイドから取られた。
仮説は、記述が簡単で起動時に効率的な単体テストを作成するためのPythonライブラリであり、探しているとは思わないコードの境界ケースを検出します。 安定していて強力で、既存のテストスイートに簡単に追加できます。
彼の仕事のアルゴリズム。考えていることだけでなく、それぞれの場合に何かが真実でなければならないと主張するテストを書くことができます。
通常の単体テストは次のようなものです。
- データを準備します。
- いくつかのデータ操作を実行します。
- 結果を確認します。
仮説により、次のようなテストを作成できます。
- いくつかの仕様を満たすすべてのデータ。
- いくつかのデータ操作を実行します。
- 結果を確認します。
これはしばしばプロパティベースのテストと呼ばれ、 Haskell Quickcheckライブラリで普及しています。
これは、仕様に一致するランダムデータを生成し、関数またはメソッドがこの場合でも保持され、クラッシュしないことを確認することで機能します。 これが当てはまらない例が見つかった場合、彼はこの例を受け入れ、サイズを縮小して単純化し、問題を引き起こすはるかに小さい例を見つけます。 その後、彼はこの例を保存して、コードの問題を見つけたらすぐに忘れないようにします
これは将来的に。
この形式でテストを書くことは、通常、コードが行うべき保証を決定することから成ります-プロパティは、世界があなたに提示するものに関係なく、常にtrue
でなければなりません。 そのような保証の例は次のとおりです。
- コードは例外をスローしないか、特別なタイプの例外のみを発生させる必要があります(これは、内部
assert
が多数ある場合に特に有効です)。 - オブジェクトを削除すると、表示されなくなります。
- 値をシリアル化してから逆シリアル化すると、同じ値が返されます。
hypothesis
の基本を理解できたので、残りのドキュメントは、どのように、なぜ理解するのに役立ちます。 サイドバー(または携帯電話を使用している場合はメニューの上部)に表示されるセクションに分かれています。 ただし、ほとんどの場合、 クイックスタートガイドまたはクイックスタートガイドを使用して、仮説の使用例と、コードのテストを開始するために知っておく必要があることの詳細な計画を紹介するか、 入門記事の一部を確認します。