最近科技公司流年不利,那边与整个硅谷唱反调的川普逆袭上台了,这边特斯拉被评为美国最不可靠汽车品牌,据报道是因为特斯拉为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