最近科技公司流年不利,那邊與整個硅谷唱反調的川普逆襲上臺了,這邊特斯拉被評為美國最不可靠汽車品牌,據報道是因為特斯拉為Model X增加了過于復雜的功能(高科技多也怪我咯),如前門采用電動開啟方式,中排座椅實現了電動移動,所有這些功能整合在一個平臺上,導致可靠性下滑。通俗解釋下就是電動門有個小bug,電動座椅又有個小bug,一堆小bug最終導致的大bug,人命關天了,本篇就來談談軟件開發中避免小bug的技術:單元測試。
本文將介紹以下內容:
1.iOS開發中添加單元測試的方法。
3.介紹單元測試的一些基礎概念。
本篇作為重構的例子(想了解重構是什么,另參見他們總在說重構,不過是重寫 ),假設了一個視頻網站的電影點播系統,每次點擊播放就會收取費用,按電影種類不同,時段不同,則收費不同,最終計算出顧客的總消費,并計算積分。這個例子的類關系比較清晰易懂,用OC語言實現,iOS開發的童鞋看起來會比較親切,心急的童鞋可以跳過源碼部分,先看后面添加單元測試的部分準備測試工具,需要了解細節時再回頭看源碼。
系統包含一個電影類,顧客類,及點播類,類關系如下圖所示:
電影類
// // Movie.h // RefactorDemo // // Created by xishi on 16/10/29. // Copyright ? 2016年 xs. All rights reserved. //
typedef NS_ENUM(NSUInteger, MovieEnum) {
@class Movie;
- (id)initWithTitle:(NSString *)title |
// // Movie.m // RefactorDemo // // Created by xishi on 16/10/29. // Copyright ? 2016年 xs. All rights reserved. // #import "Movie.h"
@implementation Movie |
點播類: 點播類定義了點播行為,關心點播了什么電影,及點播的時段,這些都影響最終收取的費用。
原文轉自:http://www.jianshu.com/p/0b4fd636ad2c