リリースモードとデバッグモードの間で変化するロジックを含むメソッドがあります。それはまったく進んでいませんが、私のアプリケーションは全体像で使用され、リリースモードで使用されていない場合はユーザーを他のサイトにリダイレクトしたいので、それでも単体テストが必要です。
そして今私の質問に、ユニットテストをリリースモードで実行するように強制する方法はありますか?単体テストを実行するたびにビルド構成を手動で変更したくありません。
リリースモードとデバッグモードの間で変化するロジックを含むメソッドがあります。それはまったく進んでいませんが、私のアプリケーションは全体像で使用され、リリースモードで使用されていない場合はユーザーを他のサイトにリダイレクトしたいので、それでも単体テストが必要です。
そして今私の質問に、ユニットテストをリリースモードで実行するように強制する方法はありますか?単体テストを実行するたびにビルド構成を手動で変更したくありません。
リリースモードで単体テストを実行する代わりに、テストシームを作成して、引き出す動作を制御できます。あなたはこのようなことをすることができるかもしれません:
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
するか、部分的なモックを使用して戻り値を直接設定できます。