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

首頁 > 網(wǎng)站 > WEB開發(fā) > 正文

24.5.在測試前后運行代碼

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

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

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

類似setUp,tearDown方法是在每個測試后運行,無論是否有失敗斷言或異常??梢园阉斫獬蓆ry...catch...finally塊的finally部分。按這種理解,也就是說tearDown方法并不是必需的。

請記住默認下每個測試方法都是運行在自己的TestCase實例中,這就意味著類變量將被設置為實例值,取消之前測試方法所作的修改。常見的如tearDown方法包括執(zhí)行每個測試方法運行后生成的貢獻斷言或對外部資源的釋放,比如斷開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 方法都被執(zhí)行。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 内丘县| 商河县| 龙岩市| 达孜县| 汉阴县| 大方县| 怀仁县| 鹿邑县| 应城市| 邮箱| 淮滨县| 浪卡子县| 永仁县| 娱乐| 嘉定区| 托克逊县| 建阳市| 黔西| 于田县| 马尔康县| 嘉义市| 奇台县| 五家渠市| 陇西县| 兴山县| 卓资县| 吉木乃县| 周至县| 新邵县| 文山县| 平度市| 建水县| 廊坊市| 姚安县| 平谷区| 海阳市| 蚌埠市| 江华| 桐城市| 三门峡市| 崇礼县|