国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > WEB開發 > 正文

24.5.在測試前后運行代碼

2024-04-27 13:52:35
字體:
來源:轉載
供稿:網友
24.5.1. 問題
我需要在每個測試用例測試前或測試后運行特定的代碼。
24.5.2. 解決辦法
重寫TestCase類的setUp和tearDown方法。
24.5.3. 討論
默認情況下,每個TestCase中的測試方法都會在自己的TestCase實例中運行。如果多個測試方法需要同一個系統狀態或數據,你可以使用setUp方法統一進行設置而不用在每個測試開始前顯式調用某個設置方法。同理,如果需要在每個測試后清理某個對象或測試斷言,無論是否有斷言失敗或錯誤,tearDown方法必須被運行。請切記一旦有斷言失敗或產生錯誤,測試方法將會停止執行。tearDown方法還有點好處就是如果測試使用到外部資源或對象的話可以進行釋放。

setUp方法很常用,比如用來保持當前正常狀態數據到系統中。對于復雜的測試,可能需要掛接多個對象或連接到外部資源。如要在測試之前創建代碼,像下面那樣重寫setUp方法:
+展開
-ActionScript
override public function setUp():void
{}

你可以在這里放置任何代碼,包括斷言。如果某些資源或對象不存在的話,在setUp方法里使用斷言可直接快速取消測試。注意如果setUp方法內出現斷言失敗或拋出異常,預訂的測試方法或tearDown方法都不會被調用。這是tearDown方法唯一不被調用的情況。

類似setUp,tearDown方法是在每個測試后運行,無論是否有失敗斷言或異常。可以把它理解成try...catch...finally塊的finally部分。按這種理解,也就是說tearDown方法并不是必需的。

請記住默認下每個測試方法都是運行在自己的TestCase實例中,這就意味著類變量將被設置為實例值,取消之前測試方法所作的修改。常見的如tearDown方法包括執行每個測試方法運行后生成的貢獻斷言或對外部資源的釋放,比如斷開Socket。要在每個測試方法后面運行代碼,像下面那樣重寫tearDown方法:
+展開
-ActionScript
override public function tearDown():void
{}

下面的代碼演示每個測試方法何時運行,調用setUp,測試代碼和tearDown方法:
+展開
-ActionScript
package
{
import flexunit.framework.TestCase;
public class SetUpTearDownTest extends TestCase
{
private var _phase:String = "instance";
override public function setUp():void
{
updatePhase("setUp()");
}
override public function tearDown():void
{
updatePhase("tearDown()");
}
public function testOne():void
{
updatePhase("testOne()");
}
public function testFail():void
{
updatePhase("testFail()");
fail("testFail() always fails");
}
public function testError():void
{
updatePhase("testError()");
this["badPropertyName"] = "newValue";
}
private function updatePhase(phase:String):void
{
trace("Running test", methodName, "old phase", _phase,
"new phase", phase);
_phase = phase;
}
}
}

輸出信息如下:
Running test testFail old phase instance new phase setUp()
Running test testFail old phase setUp() new phase testFail()
Running test testFail old phase testFail() new phase tearDown()
Running test testError old phase instance new phase setUp()
Running test testError old phase setUp() new phase testError()
Running test testError old phase testError() new phase tearDown()
Running test testOne old phase instance new phase setUp()
Running test testOne old phase setUp() new phase testOne()
Running test testOne old phase testOne() new phase tearDown()

注意每個測試都以實例的_phase值開頭,無論是否有斷言失敗或異常,setUp和tearDown 方法都被執行。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吉安县| 荣成市| 珠海市| 尉犁县| 南康市| 马山县| 济南市| 建平县| 舒城县| 芦山县| 平乡县| 井冈山市| 天等县| 佛教| 新巴尔虎右旗| 尼玛县| 盐源县| 合川市| 闽清县| 克山县| 大同市| 鲜城| 聂拉木县| 宿松县| 礼泉县| 连云港市| 哈巴河县| 建始县| 丹东市| 镇平县| 九龙县| 张家川| 岢岚县| 哈尔滨市| 岳西县| 同德县| 新化县| 临漳县| 贵港市| 怀柔区| 嘉禾县|