Skip to content
Gowhich
  • Home
  • Blog
  • Nodejs
  • iOS
  • php
  • Archive
  • Tools
  • About
  • Language
    • Chinese
    • English
Site Search

iOS单元测试

  1. Home
  2. Blog
  3. iOS单元测试
IOS

iOS单元测试

  • 07-18,201304-30,2020
  • by davidzhang
  • on IOS
GowhichGowhichGowhich

关于这篇文章,要源于自己的一个测试,因为在一边学ios开发和学习的过程中,遇到一个问题就是做测试,但是测试的时候不知道为什么老是提示,没有test单元什么的错误,回到家,好好的琢磨了一下,发现了,这个是测试单元是可以自己创建的,我这里转载的一篇文章,来csdn,里面说的很详细,是如何进行测试单元的创建,的同时也解决了我的一个问题,就是“Unit tests are not implemented yet in WalkerUITests”这个问题,呵呵,笑死我啦,其实这个是一个测试单元建立成功的提示,接下来,做这个测试就很容易啦。

1、创建单元测试的target    

选择工程,点击Add Target,添加ios-Other下的Cocoa Touch Unit Testing Bundle类型target。(网上一些资料说,target后缀必须是Tests,但实际测试同名字无关系,可能是Xcode版本原因)。    

此时工程目录下会多一个Unistest8文件夹,Unistest8类是一个测试用例类Test8的一个实例。    

2、添加SenTestingKit.framework    

选中测试的Target,本项目中即Unitest8,查看Build Phases选项卡下的Link Binary With Libraries,会发现项目中缺少对SenTestingKit.framework库的引用,将其添加。    

3、运行Unistest8测试    

在Scheme中选择Unitest8,生成时一定要选择Product-Test,如果选择Run,则会出现“The scheme 'Unitest8' is not configured for Running”的错误。    

成功运行后,发现输出错误,错误信息如下:

Unitest8.m:29: error: -[Unitest8 testExample] : Unit tests are not implemented       yet in Unitest8    



    Test Case '-[Unitest8 testExample]' failed (0.057 seconds).    

打开Unitest8.m,会发现在Unitest8类的实现文件中默认添加了一个测试函数testExample,并添加一个执行失败的提示,如下:    

- (void)testExample{    
    STFail(@"Unit tests are not implemented yet in Unitest8");
}  

看到这个错误,整个测试的准备工作已经完成,接下来就可以在测试用例的类实例中添加测试函数,测试函数的名称就不能随意了,必须以test为前缀。在测试文件夹中还可以添加多个测试用例进行测试。

4、添加测试对象类,进行测试    

完成步骤3后,可以开始对项目中具体的类进行方法测试。除了在相应的测试用例中添加该类的引用外,首先得将这个类引用加入该测试的Target(很2地因为这个问题卡了许久),在本项目里即为Unitest8。添加引用的方式是,点击测试target(),选择面板Build Phases,打开Compile Sources,选中项目中要测试类的.m实现文件将其拖入Compile Sources就ok。否则会产生如下error:  

Undefined symbols for architecture i386:    
  "_OBJC_CLASS_$_测试类名", referenced from:    
      objc-class-ref inUnitest8.o    
ld: symbol(s) not found for architecture i386  

如果测试的类存在nib文件则需要将nib文件拖入Build Phases--Copy Bundle Resources中。    

 

以上就是参考的文章的主要内容,这里介绍给大家,希望对自己有用,对自己也有用。

 

参考文章:http://blog.csdn.net/catandrat111/article/details/7819284

版权声明

由 davidzhang创作并维护的 Gowhich博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。

本文首发于 Gowhich博客( https://www.gowhich.com ),版权所有,侵权必究。

本文永久链接: https://www.gowhich.com/blog/266

iOS 添加的UIButton为什么不起作用
"ios Application tried to push a nil view controller on target"错误处理
Unit单元测试 , iOS
版权声明

由 davidzhang创作并维护的 Gowhich博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。

本文首发于 GowhichGowhich博客( https://www.gowhich.com ),版权所有,侵权必究。

本文永久链接: https://www.gowhich.com/blog/266

comments powered by Disqus

QQ Group

  • 官方技术群:341268380
  • IOS技术群:491229003
  • RN技术群:491310686

订阅号关注

Gowhich

Recent Posts

  • x509: certificate signed by unknown authority 这个问题也许没有你想的那么复杂
  • VirtualBox 7.0.10 kernel 6.5.x on ubuntu 22.04
  • Nodejs终于看到一个靠谱的招聘了
  • acme.sh配置ssl证书,以后不需要在去各大平台去申请了
  • mariadb使用记录
  • laravel^8.0使用laravel-excel^3.1方法记录
  • composer不同php版本的使用方法
  • sublime text 通过LSP搭建轻量级IDE
  • composer更新时openssl证书异常处理
  • Ubuntu下配置swap,增加程序运行速度
  • web网站安全漏洞防护
  • composer安装SSL证书异常处理

Rank Posts

  • VirtualBox 7.0.10 kernel 6.5.x on ubuntu 22.04
  • python 结巴分词(jieba)学习
  • ios搜索栏 UISearchBarDelegate委托常用方法
  • acme.sh配置ssl证书,以后不需要在去各大平台去申请了
  • 新手入门Nest.js(十五)- 连接数据库
  • git warning 提示记录
  • composer install 错误提示解决案例(1)
  • gulp 实现 js、css,img 合并和压缩
  • No visible @interface for 'AFHTTPSessionManager' declares the selector 'POST:parameters:progress:success:failure:'
  • 如何查看Linux进程运行的完整路径
  • Linux服务器CPU跑满或抛高及带宽跑满怎样排查分析原因
  • Nestjs中的async/await的使用

Categories

  • PHP131
  • Ruby3
  • Linux87
  • MySql23
  • Object-C34
  • JAVA19
  • IOS262
  • Javascript69
  • Nginx14
  • CSS12
  • NodeJs133
  • Memcached4
  • MAC OS X20
  • C/C++7
  • MongoDB8
  • Python65
  • Html8
  • Other37
  • NetSafe1
  • Redis3
  • DotNet1
  • Apache5
  • React13
  • 啤酒技术1
  • Android4
  • ide20
  • TypeScript114
  • cocos2d-x4
  • 大事件3
  • swift11
  • git3

休闲时刻

© 2014-2025 Gowhich  

Shapely Theme by Colorlib

备案号: 蒙ICP备18003023号-4

Powered by Yii Framework

  • Gowhich
  • Durban_Zhang
  • Durban_Zhang