iOS開發入門:編寫OCUnit測試方法-邏輯測試方法

來源:互聯網
上載者:User

應用測試和邏輯測試

添加OCUnit到工程時候,我們提到過,應用測試(Application Testing)和邏輯測試(Logic  Testing)兩個概念,它們並非是OCUnit中的概念,而是單元測試中概念。應用測試是對整個應用程式進行的測試,設計測試案例時候要考慮到運行環 境等因素,例如在測試JavaEE時候需要考慮Web容器和EJB容器等環境問題。而邏輯測試則是輕量級的,只測試某個商務邏輯對象的方法或演算法正確性。

編寫OCUnit測試方法

每一個單元測試用例對應於測試類別中的一個方法,因此測試類別分為:邏輯測試類別和應用測試類別,在設計測試案例時候,邏輯測試和應用測試也是不同的。編寫 OCUnit測試方法也是要分邏輯測試和應用測試。下面我們還是通過計算個人所得稅應用介紹,它們的編寫過程,被測試類別ViewController編寫 過程不再介紹。

1、邏輯測試方法

邏輯測試應該測試計算個人所得稅的商務邏輯,即測試ViewController類中的calculate:方法

LogicTest.h的代碼如下:

#import <SenTestingKit/SenTestingKit.h>      #import “ViewController.h”      @interface LogicTest : SenTestCase      @property (nonatomic,strong) ViewController *viewController;      @end      在h檔案中定義viewController屬性,注意定義為屬性參數設定為strong。LogicTest.m的代碼如下:      #import “LogicTest.h”      @implementation LogicTest      - (void)setUp      {      [super setUp];      self.viewController = [[ViewController alloc] init];      }      - (void)tearDown      {      self.viewController = nil;      [super tearDown];      }      //測試月應納稅額不超過1500元 用例1      - (void)testCalculateLevel1      {      double dbRevenue = 5000;      NSString *strRevenue = [NSString stringWithFormat:@"%f",dbRevenue];      NSString* strTax =[self.viewController calculate:strRevenue];      STAssertTrue([strTax doubleValue] == 45, @”期望值是:45 實際值是:%@”, strTax);      }      //測試月應納稅額超過1500元至4500元 用例2      - (void)testCalculateLevel2      {      double dbRevenue = 8000;      NSString *strRevenue = [NSString stringWithFormat:@"%f",dbRevenue];      NSString* strTax =[self.viewController calculate:strRevenue];      STAssertTrue([strTax doubleValue] == 345, @”期望值是:345 實際值是:%@”, strTax);      }      //測試月應納稅額超過4500元至9000元 用例3      - (void)testCalculateLevel3      {      double dbRevenue = 12500;      NSString *strRevenue = [NSString stringWithFormat:@"%f",dbRevenue];      NSString* strTax =[self.viewController calculate:strRevenue];      STAssertTrue([strTax doubleValue] == 1245, @”期望值是:1245 實際值是:%@”, strTax);      }      //測試月應納稅額超過9000元至35000元 用例4      - (void)testCalculateLevel4      {      double dbRevenue = 38500;      NSString *strRevenue = [NSString stringWithFormat:@"%f",dbRevenue];      NSString* strTax =[self.viewController calculate:strRevenue];      STAssertTrue([strTax doubleValue] == 7745, @”期望值是:7745 實際值是:%@”, strTax);      }      //測試月應納稅額超過35000元至55000元 用例5      - (void)testCalculateLevel5      {      double dbRevenue = 58500;      NSString *strRevenue = [NSString stringWithFormat:@"%f",dbRevenue];      NSString* strTax =[self.viewController calculate:strRevenue];      STAssertTrue([strTax doubleValue] == 13745, @”期望值是:13745 實際值是:%@”, strTax);      }      //測試月應納稅額超過55000元至80000元 用例6      - (void)testCalculateLevel6      {      double dbRevenue = 83500;      NSString *strRevenue = [NSString stringWithFormat:@"%f",dbRevenue];      NSString* strTax =[self.viewController calculate:strRevenue];      STAssertTrue([strTax doubleValue] == 22495, @”期望值是:22495 實際值是:%@”, strTax);      }      //測試月應納稅額超過80000元 用例7      - (void)testCalculateLevel7      {      double dbRevenue = 103500;      NSString *strRevenue = [NSString stringWithFormat:@"%f",dbRevenue];      NSString* strTax =[self.viewController calculate:strRevenue];      STAssertTrue([strTax doubleValue] == 31495, @”期望值是:31495 實際值是:%@”, strTax);      }      @end

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.