BDD と RSpec にはかなり慣れていないので、RSpec のテスト/例を書くときに人々が通常何をするのか、特に同じことの肯定的テストと否定的テストに関連しているため、非常に興味があります。
たとえば、ユーザー名の検証と、有効なユーザー名には英数字のみが含まれるというルールを考えてみましょう。
肯定的/肯定的なテストは次のようになります。
it "should be valid if it contains alphanumeric characters"
username = 'abc123'
username.should be_valid
end
ネガティブテストは次のようになりますが:
it "should be invalid if it contains non-alphanumeric characters"
username = '%as.12-'
username.should_not be_valid
end
1 つのテストを作成しますが、もう 1 つのテストは作成しませんか? 両方書きますか?それらを同じテストにまとめますか?人々が上記のいずれかを実行する例を見たので、ベストプラクティスがあるかどうか疑問に思っていました。もしそうなら、それは何ですか?
ポジティブ テストとネガティブ テストの両方を記述する例:
it "should be invalid if it contains non-alphanumeric characters"
username = '%as.12-'
username.should_not be_valid
username = 'abc123'
username.should be_valid
end
私はこの方法でそれを行っている人々の例を見てきましたが、正直なところ、私はこのアプローチのファンではありません. メソッドの書き方と同じように、私は 1 つの目的のために物事をクリーンで明確に保つ側で過ちを犯しがちです。それで、この種の何かを述べるベストプラクティスはありますか? その例では、すべての角度ではなく、1 つの角度から単一の機能/動作をテストする必要があります。