0

モデルを定義し、それにいくつかのフィールドがある場合、いくつかのRSpecテストでは、次のようなものが表示されることがあります。

let(:network) { build(:provider_network) }

  it 'responds to provider count' do
    expect(network).to respond_to(:provider_count)
  end

たとえば、ここではモデルにというフィールドがあり、provider_countそのテストを作成しました。
これが本当に必要かどうか、そしてそれをテストするための良い習慣かどうかを見たかったのですか?またはそれはただの偽物ですか?

4

1 に答える 1

1

何かがどの程度「有用」であるかについての質問は、特にテストにおいて、ほとんど常に議論の余地があります。代わりに、フィールドを使用するテストのように、真の機能をカバーするprovider_countテストは、モデルが に応答することも本質的にテストしprovider_countます。書かれているように、テストは一種のような"foo".should == "foo"ものです What's the point?

ここでは機能ではなく、本質的にフォームをテストしています。単体テストは、ほとんどの場合、フォームではなく機能をテストする必要があります。

このテストが粗悪品以外のものであると私が考える唯一のケースは、ドキュメンテーションの主要な場所です。たとえば、provider_countが将来の削除の候補と思われる非正規化フィールドであるか、バグ修正に関与している場合、将来の開発者の目をテストに引き付けるための will-break-later ポイントとしてこのテストを入れることは問題ありません。provider_count彼らの目が描かれたら、単純に削除または変更できない理由を彼らに知らせることができる文書がそこにあります. これは、誰かがそのフィールドを削除したくなる可能性があると確信している場合に、そのフィールドの目的を人々に伝えるための避雷針です。

もちろん、理論的には、provider_count誰かが . . これは非常に多くの憶測と占いであるため、YAGNI の延長としてこの衝動を避けようとします。

于 2013-02-26T04:36:21.343 に答える