2

リリースモードとデバッグモードの間で変化するロジックを含むメソッドがあります。それはまったく進んでいませんが、私のアプリケーションは全体像で使用され、リリースモードで使用されていない場合はユーザーを他のサイトにリダイレクトしたいので、それでも単体テストが必要です。

そして今私の質問に、ユニットテストをリリースモードで実行するように強制する方法はありますか?単体テストを実行するたびにビルド構成を手動で変更したくありません。

4

1 に答える 1

1

リリースモードで単体テストを実行する代わりに、テストシームを作成して、引き出す動作を制御できます。あなたはこのようなことをすることができるかもしれません:

public class Foo {

    public int Bar() {
      if (IsDebugModeEnabled()) {
        return 1;
      } else {
        return 0;
      }
    }

    public boolean IsDebugModeEnabled() {
      #if DEBUG
      return true;
      #else
      return false;
      #endif
    }   
}

このようにして、ロジックの両方のパスをテストするためのいくつかのオプションがあります。サブクラスFooを作成してオーバーライドIsDebugModeEnabledするか、部分的なモックを使用して戻り値を直接設定できます。

于 2013-03-26T15:24:00.853 に答える