MSVC++のネイティブ単体テストプロジェクトの話です。
TEST_METHOD 前に属性を追加する
BEGIN_TEST_METHOD_ATTRIBUTE
とTEST_IGNORE
マクロを使用します。
BEGIN_TEST_METHOD_ATTRIBUTE(無効なテストケース)
TEST_IGNORE()
END_TEST_METHOD_ATTRIBUTE()
TEST_METHOD(無効なテストケース)
{
// テストケースの実装
}
これでこのテストケースは実行されません。
実行結果
ユースケースとして
ある特定条件下では必ず失敗してしまうケースを書いて、テストケース名に特定条件下の簡易な説明を入れておくと、このケースは書かなくて良い or 書いてはいけないを形式知として定義できる。
具体的な特定条件下
ネットワークドライブ上に配置したDLLをロードして、そのAPIをテストするケース。
DLLは内部でFileIOを使用していて、自DLLと同じ階層にファイルを作成する仕様があったとする。このときに、FileIOのファイルオープンが必ずFailする。(管理者権限が必要なディレクトリ階層でも同じことがおきる)
このとき、**「ネットワークドライブ上のDLLをロードする」**が特定条件となるので、TEST_IGNORE
属性を付加しておくことで、同じ問題にぶつからないようにする効果がある(ことを期待している)。