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

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

24.6.測試用例之間共享測試數據

2024-04-27 13:52:36
字體:
來源:轉載
供稿:網友
24.6.1. 問題
我想在多個測試用例之間共享數據,包括簡單的或復雜的測試數據實例。
24.6.2. 解決辦法
創建能生成所需測試數據實例的工廠類。
24.6.3. 討論
一般的單元測試都有多個測試用例,彼此之間需共享相同或類似的測試數據。這些數據可能很簡單,比如是一個表示地址的object,也可能會很復雜,比如是以特定方式建立的相關實體的命令。不是通過剪貼和粘帖代碼或從外部載入資源來為每個TestCase創建和初始化對象,而是通過工廠來集中創建。這種集中處理數據的類型方式我們稱之為ObjectMother 設計模式。

簡單為例,ObjectMother是個簡單的工具類,只提供一個靜態方法用于創建需要的類型對象。

該方法通常有兩種形式:一種是需要傳遞一個參數值用于設置每個屬性,該方法只裝配對象。

第二種需要很少或不需要參數,該方法為每個字段提供實際的智能的默認值。如需要其他的對象類型,還可以使用較低級別的創建方法來生成更復雜的對象。

下面的例子是一個簡單的ObjectMother實現:
+展開
-ActionScript
package
{
public class ObjectMother
{
public static const SHIPPING_ZIP_CODE:String = "0123";
public static function createAddress(line:String,
city:String, state:String, zip:String):Address
{
var address:Address = new Address();
address.line = line;
address.city = city;
address.state = state;
address.zip = zip;
return address;
}
public static function createAddressShipping():Address
{
return createAddress("123 A Street""Boston""MA",
SHIPPING_ZIP_CODE);
}
public static function createAddressBilling():Address
{
return createAddress("321 B Street""Cambridge""MA",
"02138");
}
public static function createOrder(lineItems:Array =
null):Order
{
var order:Order = new Order();
order.shippingAddress = createAddressShipping();
order.billingAddress = createAddressBilling();
for each (var lineItem:LineItem in lineItems)
{
addLineItemToOrder(order, lineItem);
}r
return order;
}
public static function addLineItemToOrder(order:Order,
lineItem:LineItem):void
{
order.addLineItem(lineItem);
}
}
}

從簡單的Address對象開始,定義了標準的參數化創建方法createAddress。兩個輔助類函數createAddressShipping和createAddressBilling,為TestCase方法提供快速方式訪問更充實的Address實例。輔助類函數建立在通用的createAddress函數值上。分層的創建策略可方便的創建出更復雜類型的對象,如這里的createOrder例子。

因為每次調用一個方法都會生成新的對象實例,所以由一個TestCase的修改不會影響到另一個TestCase。同一時刻,測試數據都被集中化處理,在ObjectMother中修改數據以支持新的測試可能會破壞現有的測試。相對于能輕松訪問到測試數據等優點這只是一點小問題。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安丘市| 武平县| 灌云县| 思南县| 招远市| 灵台县| 平山县| 古丈县| 潞城市| 无棣县| 武宣县| 仙游县| 古田县| 阆中市| 新绛县| 体育| 怀化市| 三江| 安岳县| 富顺县| 西贡区| 萍乡市| 黎川县| 多伦县| 淮南市| 潞西市| 米林县| 湖北省| 探索| 古交市| 乐安县| 沙坪坝区| 汉中市| 黑河市| 新蔡县| 嘉善县| 新龙县| 汝州市| 崇义县| 上虞市| 通州区|