iOS开发入门:编写OCUnit测试方法-逻辑测试方法

应用测试和逻辑测试

添加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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索测试
, nsstring
, 逻辑
, viewcontroller
IOS环信报错sourcepathisnil
,以便于您获取更多的相关知识。

时间: 2025-01-02 13:21:48

iOS开发入门:编写OCUnit测试方法-逻辑测试方法的相关文章

iOS开发入门:OCUnit测试框架

使用OCUnit测试框架iOS单元测试框架 原则上,是否使用测试框架都不会影响单元测试结果,但是"工欲善其事,必先利其器"使用单元测试框架更便于我们测试和分析结果. 主要的iOS单元测试框架有: OCUnit,是开源测试框架,与Xcode工具集成在一起使用非常方便,测试报告以文本形式输出到输出窗口: GHUnit,是开源测试框架,它可以将测试报告以应用形式可视化输出到设备或模拟器上,也可以以文本形式输出到输出窗口:GHUnit可以测试OCUnit编写的测试用例: OCMock,是开源测

《iOS 9 开发指南》——第1章,第1.1节IOS开发入门

第1章 IOS开发入门 iOS 9 开发指南 iOS是一个强大的系统,被广泛地应用于苹果公司的系列产品iPhone.iPad和iTouch设备中.iOS通过这些移动设备展示了一个多点触摸界面及众多内置传感器的界面.本章将带领大家认识iOS系统,为读者步入本书后面知识的学习打下基础. 1.1 iOS系统介绍 iOS 9 开发指南 图片 1 知识点讲解:光盘:视频\知识点\第1章\ iOS系统介绍.mp4 iOS是由苹果公司开发的手持设备操作系统.苹果公司最早于2007年1月9日的Mac World

iOS开发入门:编写OCUnit测试方法-应用测试方法

应用测试方法 应用测试是测试应用程序的一些功能,这个功能具体到点击一个按钮触发一个事件,因此它主要是测试表示层.我们看看视图控制器ViewController.m中有那些方法需要测试,然后再来设计测试用例. @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; } -

iOS开发那些事--编写OCUnit测试方法-逻辑测试方法

应用测试和逻辑测试 添加OCUnit到工程时候,我们提到过,应用测试(Application Testing)和逻辑测试(Logic Testing)两个概念,它们并非是OCUnit中的概念,而是单元测试中概念.应用测试是对整个应用程序进行的测试,设计测试用例时候要考虑到运行环境等因素,例如在测试JavaEE时候需要考虑Web容器和EJB容器等环境问题.而逻辑测试则是轻量级的,只测试某个业务逻辑对象的方法或算法正确性. 编写OCUnit测试方法 每一个单元测试用例对应于测试类中的一个方法,因此测

iOS开发入门:iOS视图生命周期与视图控制器关系

iOS中视图是一个应用的重要组成部分,功能的实现与其息息相关,而视图控制器控制着视图,其重要性在整个应用中不言而喻. 视图生命周期与视图控制器关系 以视图的5种状态为基础,我们来系统的了解一下视图控制器的生命周期.在视图不同的生命周期,视图控制器会回调不同的方法. 开发入门:iOS视图生命周期与视图控制器关系-"> viewDidLoad方法:视图控制器已被实例化,在视图被加载到内存中的时候调用该方法,这个时候视图并未出现.在该方法中通常进行的是对所控制的视图进行初始化处理. 视 图可见前

iOS开发入门:iOS常用设计模式–委托模式案例实现

我们以UITextFieldDelegate为例来说明一下委托的使用. UITextFieldDelegate是控件UITextField的  委托,控件的委托主要负责响应控件事件或控制其他对象.除了UITextField,WebView.UITableView等控件也有相应的委托对象. 打开UITextFieldDelegate的API文档,其中有4个有关编辑的方法,还要3个其它方法. 开发入门:iOS常用设计模式–委托模式案例实现-"> 这里我们在编辑过程中消息的发送,UITextFi

iOS开发入门:自定义单元格实现

自定义单元格 当苹果公司提供给的单元格样式不能我们的业务需求的时候,我们需要自定义单元格.在iOS  5之前,自定义单元格可以有两种实现方式:代码实现和用xib技术实现.用xib技术实现相对比较简单,创建一个xib文件,然后定义一个继承 UITableViewCell类单元格类即可.在iOS 5之后我们又有了新的选择,故事板实现方式,这种方式比xib方式更简单一些. 我们把简单表视图案例的原型图修改一下,这种情况下四种内置的单元格样式就不合适了. 开发入门:自定义单元格实现-"> 采用&q

iOS开发入门:如何编译iOS程序

我们从编写到发布应用会经历3个阶段:模拟器上运行调试.设备上运行调试和发布编译,苹果为了防止非法设备和非开发人员调试和发布应用,使用配置概要文件(Provisioning Profiles)控制在设备上运行调试和发布编译阶段,配置概要文件分为两种:开发配置概要文件和发布配置概要文件 1.创建发布配置概要文件 创建过程是先登录iOS开发中心的配置门户网站(iOS Provisioning Portal),通过左边的导航菜单Provisioning进入.选择Distribution标签就是管理发布配

iOS开发入门:平铺导航-基于Page的导航及案例实现

基于分页导航实现 在iOS 5之后,可以使用分页控制器(UIPageViewController)构建类似于电子书效果的应用,我们称为基于分页的应用.一个分页应用有很多相关的视图控制器 开发入门:平铺导航-基于Page的导航及案例实现-"> 分页控制器(PageViewController)需要放置在一个父视图控制器中,在分页控制器下面还要有子视图控制器,每个子视图控制器对应图中的一个页面. 在基于分页导航实现的应用中需要的类和协议:UIPageViewControllerDataSour