目前我正在爲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();
}
}
編輯: 好像我第一次嘗試wasnt不夠清楚,所以這裏的另一種描述。
有沒有辦法告訴我的測試方法/類運行測試作爲運行時版本?我不想更改我的CustomControl中的屬性或方法。而且我沒有熟悉Method IsNotInDesignMode()(例如通過模擬它),因爲它是在外部庫中實現的。
編輯2:看代碼。
感謝您的幫助。
你不能「跳出設計時間」。您的用戶控件要麼在設計器中顯示,要麼在運行時顯示。解釋你究竟想要做什麼,並詳細說明「跳出設計時間」的含義。回答這個問題需要更多的上下文。如果你的意思是你想讓屬性'IsNotInDesignMode'在單元測試控件的時候獲得一定的值,那麼創建一個構造函數參數來設置這個屬性,或者直接從你的單元測試中分配它。 – CodeCaster
我知道你可能不瞭解我的問題。但爲什麼你把它標記爲重複?您阻止其他用戶打開我的問題並嘗試給出答案。您提供的鏈接是完全不同的問題。 – Febertson
您給出的問題描述由副本回答:您只能_detect_,而不是_change_設計時間 - 它是隻讀屬性。所以如果你想讓你的真正問題得到解決,請閱讀[問]和[編輯]你的問題,以便實際回答問題,我很樂意重新開放。 – CodeCaster