非常に単純な BDD の例を示している Luke Redpath による古い記事を偶然見つけました(非常に短く、私のような Ruby 以外のプログラマーでも簡単に理解できます)。最終結果は非常に不完全であることがわかりました。そのため、この例はほとんど役に立ちません。
最終結果は、事前設定された属性を持つユーザーが有効であることを検証する単一のテストです。私の見解では、これは検証ルールを正しく検証するのに十分ではありません。たとえば、
validates_length_of :password, :in => 6..12, :allow_nil => :true
に
validates_length_of :password, :in => 7..8, :allow_nil => :true
(またはパスワードの長さの検証を完全に削除することさえできます)テストは引き続きパスしますが、コードが初期要件に違反していることは明らかです。
個々のテストをすべて 1 つのテストにまとめるという最後のリファクタリングだけでは十分ではないと思います。彼は、あまり保証されていない「ハッピー パス」のみをテストします。特定の値で正しいエラーがトリガーされることを確認するすべてのテストが絶対に必要です。パスワードの場合、長さが 6 未満で 12 を超えるパスワードが無効であり、適切なエラーがトリガーされることをテストします。「ハッピー パス」テストも同様に存在しますが、記事にあるようにそれだけではありません。
あなたの意見は何ですか?私はただ、その男がなぜ彼のやり方でそれをしたのか、そして彼が単に問題を見落としていたのか、それとも彼の意図だったのかを理解しようとしています. 私は何かが欠けているかもしれません。