質問

最近、独自のアノテーションを作成し始めました。TDD/BDD を活用するために、アノテーションの単体テストを行って、明確な仕様を作成したいと考えています。ただし、アノテーションは基本的に単なる派手なインターフェイスであり、私の知る限りでは実際に直接インスタンス化することはできません。アノテーションの単体テストをリフレクションする以外に方法はありますか?

役に立ちましたか?

解決

これは、私は通常のためのテストを書くと何かではないのですが、あなたは、単にそれが正しいデフォルト値などを持っていることを、使用したテストクラスのセットを作成し、注釈を乱用し、それはそのメンバの値を記憶していることをテストすることができます。

これはのみのコースの正しいターゲットにspecfiedされているランタイム注釈上で動作します。

私の経験では、自身がユニットテストを保証するのに十分なことは稀興味深い注釈 - それは通常のテストを必要とするそれらを使用するコードです。しかし、私は思考の100%のコードカバレッジ学校からないよ: - )

他のヒント

注釈は(そうでない場合、それらを使用する無意味だろう)何らかの影響を持っています。だから、注釈の存在をテストするものではありませんが、効果はそれを持っている必要があります。

あなたは、ユニットテストは、あなたのアノテーション定義がOKであればできます。これはデフォルト値が正しく初期化されない、必要であれば、それは実行時に利用可能である、要素の有効なセットに適用することができますか? その後、後に、ユニットあなたのアノテーションを処理するクラスをテストます。

前述したように、テストするものが何もないため、それらを直接テストすることはできません。ただし、いくつかのことを証明することはできます。

  • コード内に注釈が付いているオブジェクトには、実行時に予期される注釈が含まれています
  • デフォルト値が初期化されました
  • 注釈はあなたが期待するものにバインドされます

単体テストを行う場合、実装がインターフェイスに準拠していることを証明できることの 1 つです。 したがって、アノテーションが特定の動作やプロパティを暗黙的に示している場合(例: Serializable 実際にはシリアル化可能である必要があります)、これをテストでも表現したいと思うでしょう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top