2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

特定のユニットテスト TEST_METHOD を無効にする方法(MSVC++)

Posted at

MSVC++のネイティブ単体テストプロジェクトの話です。

TEST_METHOD 前に属性を追加する

BEGIN_TEST_METHOD_ATTRIBUTETEST_IGNOREマクロを使用します。

BEGIN_TEST_METHOD_ATTRIBUTE(無効なテストケース)
    TEST_IGNORE()
END_TEST_METHOD_ATTRIBUTE()
TEST_METHOD(無効なテストケース)
{
    // テストケースの実装
}

これでこのテストケースは実行されません。

実行結果

ignore_unittest.png

ユースケースとして

ある特定条件下では必ず失敗してしまうケースを書いて、テストケース名に特定条件下の簡易な説明を入れておくと、このケースは書かなくて良い or 書いてはいけないを形式知として定義できる。

具体的な特定条件下

ネットワークドライブ上に配置したDLLをロードして、そのAPIをテストするケース。

DLLは内部でFileIOを使用していて、自DLLと同じ階層にファイルを作成する仕様があったとする。このときに、FileIOのファイルオープンが必ずFailする。(管理者権限が必要なディレクトリ階層でも同じことがおきる)

このとき、**「ネットワークドライブ上のDLLをロードする」**が特定条件となるので、TEST_IGNORE属性を付加しておくことで、同じ問題にぶつからないようにする効果がある(ことを期待している)。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?