基於反射的UI測試 六, 呼叫窗體控制項的方法

2021-05-25 06:46:55 字數 363 閱讀 9504

思路: 通過form.gettype()和type.getmethod()方法得到要呼叫方法的乙個引用。然後通過methodinfo.invoke()方法和乙個作為方法委託的autoresetevent物件來呼叫目標方法。

用button1_click()方法來處理對於button1的單擊事件。

基於反射的ui自動化測試通過直接呼叫button控制項相應的方法來模擬使用者的單擊事件,而不是通過觸發這個事件來呼叫這個方法。當真正的使用者單擊這個button時,會產生乙個windows訊息,這個訊息由控制項處理以後轉化為乙個受控事件,這個受控事件會觸發乙個特定的方法被呼叫。因此,如果待測程式把乙個錯誤的方法與button的單擊事件相繫結,基於反射的ui 自動化測試並不能捕獲這個邏輯錯誤。

winform在子窗體呼叫父窗體的控制項

一 如果是在兩個無關的窗體間要實現上述的訪問可以使用form的owenr屬性 在form1中新增 form2 form2 new form2 this.addownedform form2 或ji.showdialog this 向父窗體新增附屬窗體 在form2中新增 form1 form1 fo...

C 跨執行緒呼叫窗體控制項的問題

前段時間遇到跨執行緒呼叫窗體控制項的問題,其實一句話system.windows.forms.control.checkforillegalcrossthreadcalls false 就可以解決,但感覺會有不穩定因素,因此在網上找了一些相應的文章感覺還不錯,第一種用的比較順手 注 在devexpr...

如何跨越執行緒呼叫窗體上的控制項

ui 的響應速度 使得一切執行顯得更為快速。在 windows 中進行多執行緒程式設計曾經是 c 開發人員的專屬特權,但是現在,可以使用所有相容 microsoft net 的語言來編寫。不過 windows 窗體體系結構對執行緒使用制定了嚴格的規則。如果只是編寫單執行緒應用程式,則沒必要知道這些規...