你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS單元測試之接口測試

iOS單元測試之接口測試

編輯:IOS開發綜合

  記得上篇關於單元測試的文章是2015年,當時剛買了芈君的《IOS測試指南》,作為啟蒙書籍,將書中的知識點都嘗試了一下,但是由於在項目中沒有實施,自己對單元測試的重要性和了解並沒有太深入。

為什麼要推動單元測試?

背景:十五人左右的IOS團隊,測試團隊規模較小,去年出現過幾次線上的bug,很大程度是測試人力不夠,測試覆蓋范圍有限。但同時也存在開發人員技術素養不夠,寫出的代碼健壯性不足。
  痛定思痛,今年決定強力推廣單元測試,同時呢也希望通過這個機會,是小伙伴們的技術水平更上一個台階。在接下來的一段時間我會把自己推廣單元測試的心得體會分享給大家。下面我就給大家說一下,單元測試中的接口測試

接口單元測試的要求:
1)傳入參數的測試,一般情況下我們接口傳入參數GET方法傳入的是NSString對象,POST方法傳入的NSDicitionary類型的對象。我們可以按照如下步驟進行。

對組成參數的不同元素,可能出現的情況進行梳理 根據組成參數的不同元素可能出現的情況寫出對應的測試樣例。 針對測試中出現的問題,完善相應的代碼。 測試通過後將代碼移入到項目中去。

2)接口數據解析的測試,針對斷網,慢網,正常網速的情況對接口進行測試,同時對接口返回數據解析的代碼進行測試,保證在後台返回數據發生改變的情況下不發生崩潰,閃退。提交代碼的健壯性。

測試傳入參數具體代碼如下:

- (void)testParamter{

    param1 =nil;
    //param1 = @"KLKLKL";
    param2 =nil;
    //param2 =@"1234";
    param3 =nil;
    param3 = @"abcd";

   NSDictionary *parameter =@{@"key1":param1,@"key2":param2,@"key3":param3}
  //此處代碼中沒有相關的容錯處理,通過單元測試,如果  param1,param2,param3 只要一個為nil就會報錯。如果想使用我寫的一個容錯工具可以執行: pod JKDataHelper
    XCTAssert([parameter isKindOfClass:[NSDictionary class]]);

}

測試接口數據解析具體代碼如下:


- (void)testAPI{
//此處調用網絡請求的函數
parameter =@{@"key1":@"123",@"key2":@"456",@"key3":@"4444"}
[self getPrognosisBestPergantperiod:nil CallBack:^(id data) {

    }];
}
- (void)getPrognosisBestPergantperiod:(NSDictionary *)parameters CallBack:(void(^)(id data))callback {

    XCTestExpectation *exception = [self expectationWithDescription:@"handle Called"];
    //ABModel繼承自JSONModel
    [ABModel getURL:url parameters:parameters hudMode:OrangeMode block:^(id responSEObject, id dataArray) {
        [exception fulfill];
       //建議對需要解析的數據都做容錯保護,可以很大程度的減少crash概率。 
        XCTAssertTrue([responSEObject isKindOfClass:[NSDictionary class]]);
        XCTAssertTrue([dataArray isKindOfClass:[NSDictionary class]]);
        if (callback) {
            XCTAssertTrue([responSEObject[@"statusCode"] isKindOfClass:[NSString class]]);
            if ([responseObject[@"statusCode"] isEqualToString:@"10000"]) {
                JKModel *model = [[JKModel alloc] initWithDictionary:(NSDictionary *)dataArray error:nil];
//JKModel繼承自JSONModel
                callback(model);
            } else {
                callback(nil);
            }
        }
    }];

    [self waitForExpectationsWithTimeout:5 handler:nil];
    //這個地方可以設置網絡請求的時間等待
}

剛開始進行單元測試,很多地方還認識不是太透徹,哪裡寫的不好的,歡迎各位進行指教。歡迎大家使用我寫的容錯利器JKDataHelper,並提出好的建議哦

以上就是IOS單元測試之接口測試的全文介紹,希望對您學習和使用ios應用開發有所幫助.

【iOS單元測試之接口測試】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved