在沒有狀態機的情況下,可以完全仿照客戶的使用習慣進行UI線程上的模擬,比如click(), drag(), drop()等等,這樣可以不用寫另外的函數,而只需要直接拿來 一些現成的UI表現來進行模擬。
但如果你的項目的全局狀態下由狀態機驅動的時候,這個時候就要注意了,如果你模擬UI的動作可能會出現一些狀態機不能模擬到的事件----比如狀態跳轉,假設A->B->C,這樣的狀態流,你在A狀態下,但由於你用了UI的函數,可能直接由A進入了C。
再比如如果你在A狀態,使用了UI函數,但這個時候你並沒有真正進入C狀態,這個時候,這個UI函數還管不管用也說不定了。
所以,在有狀態機的情況下,寫自動測試化腳本,需要遵循狀態機的路線來行走,這樣可以避免出一些亂七八糟的錯誤,比如此時就可以遵循postEvent->UI函數這樣的邏輯。