現在、私はCustomControlのUnitTestを開発しています。このコントロールには、呼び出されたメソッドがDesignTimeで呼び出されないときにのみ実行されるコードがあります。テストを実行すると、現在のコンテキストがDesignTimeのように見えるので、指定されたコードは実行されません。デバッグテスト中にDesignTimeからジャンプする
例:
public void SomeMethod() // EDIT: this is the OnLoaded Event for example.
{
if(IsNotInDesignMode()) // This is implemented somewhere else.
{
// I want this to be called in the Test Execution.
DoSomething();
}
}
EDIT: はので、ここで十分に明確に私の最初の試みの波平、別の説明のように思えます。
テストメソッド/クラスにランタイムバージョンとしてテストを実行する方法はありますか?私は自分のCustomControlでプロパティやメソッドを変更したくないです。それは外部ライブラリに実装されているので、私はメソッドのIsNotInDesignMode()にアクセスしていません(例えば、それを模倣して)。
EDIT 2:コードを参照してください。
私を助けてくれてありがとう。
「デザインタイムから飛び出る」ことはできません。ユーザーコントロールはデザイナーに表示されるか、実行時に表示されます。正確に何をしようとしているのかを明らかにし、「設計時間から飛び降りる」ことが何を意味するのかを詳しく説明します。これに答えるためにはより多くの文脈が必要です。ユニットのテスト中にIsNotInDesignModeプロパティの値を取得したい場合は、そのプロパティを設定するコンストラクタパラメータを作成するか、単体テストから直接割り当てます。 – CodeCaster
私はあなたが私の問題を理解していないかもしれないことを理解します。しかし、なぜそれを重複としてマークしましたか?あなたは他のユーザーが私の質問を開き、答えを出そうとしないようにします。あなたが提供したリンクは完全に異なる質問です。 – Febertson
あなたが与える問題の説明は複製によって回答されます:あなたは_detect_でしかなく、_change_デザインタイムではなく、読み取り専用のプロパティです。実際の問題を解決したい場合は、あなたの質問を読んで[編集]し、実際に答えられるようにしてください。私は再オープンすることができます。 – CodeCaster