SilkTest入門快打5-深入appstate

發表于:2011-03-24來源:作者:點擊數: 標簽:
SilkTest入門快打5-深入appstate 軟件測試 運行完上一講中的testcase ,大家有沒有發現一個問題?是的,testcase 還是有瑕疵,因為計算器在測試運行后,沒有自動關閉。這在運行多個用例的時候可能會導致問題,為了解決這個問題,我們還是得求助于appstate 。

  SilkTest入門快打5-深入appstate   軟件測試

  運行完上一講中的testcase ,大家有沒有發現一個問題?是的,testcase 還是有瑕疵,因為計算器在測試運行后,沒有自動關閉。這在運行多個用例的時候可能會導致問題,為了解決這個問題,我們還是得求助于appstate 。

  Appstate 提供一種機制,在testcase 執行完后,會自動調用系統函數SetBaseState(), 它會將測試用例的狀態設置到其狀態鏈上最基層的那個狀態,在上一講中就是DefaultBaseState 。我們可以重新組織用例CalWithFunction 的結構,讓它的基狀態自動關閉計算器應用,那么當測試用例運行結束時,就會關閉計算器,其重構后的代碼如下:

  [-] testcase CalWithFunction () appstate PrepareCal

  [ ] String sResultValue = Cal1Plus2()

  [ ] Verify(val(sResultValue), 3, "Expect: 3, actually it is {sResultValue}")

  [-] String Cal1Plus2()

  [ ] 計算器.N1.Click ()

  [ ] 計算器.Plus.Click ()

  [ ] 計算器.N2.Click ()

  [ ] 計算器.Equal.Click ()

  [ ] String sResultValue = 計算器.CalResult.GetText()

  [ ] return sResultValue

  [-] appstate PrepareCal() basedon MyBaseState //1

  [ ] 計算器.Invoke()

  [ ] 計算器.C.Click ()

  [-] appstate MyBaseState () //2

  [-] if( 計算器.Exists())

  [ ] 計算器.Close()

  重構后的用例中的應用狀態PrepareCal 的基狀態是MyBaseState ,而MyBaseState 只是檢測計算器應用是否打開,如果是,那么就關閉它。運行一下,你的計算器自動關閉了么?

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97