在ios项目中引入单元测试(下)
来源:互联网 发布:网络宣传部是干什么的 编辑:程序博客网 时间:2024/04/27 10:19
刚才写了怎么在ios项目中引入XCTest单元测试框架:在ios项目中引入单元测试(上)
不过还有2个问题,本文补充一下
单元测试类依赖原始类
这是最普遍的场景,如果做不到,根本就谈不上单元测试了。一般单元测试的代码都会这么写:
@interface YLSClientInfoTest : XCTestCase@end@implementation YLSClientInfoTest{ YLSClientInfo *clientInfo;}- (void)setUp{ [super setUp]; clientInfo = [YLSClientInfo new];}
单元测试类里有一个原始类的引用,并在setUp()方法中创建实例和初始化,然后在具体的测试方法testXXX()中做测试
本来我以为这个不需要特别的配置,谁知一运行就报错:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_YLSClientInfo", referenced from:
objc-class-ref in YLSClientInfoTest.o
(maybe you meant: _OBJC_CLASS_$_YLSClientInfoTest)
看起来是找不到YLSClientInfo这个类。搞了好一会,原来这个类没有被编译到Test的Target里,需要在Util Pane里打钩才行:
所以需要做单元测试的类,以及相关依赖的类,都要打上勾才行。一个个打钩很麻烦,还容易遗漏,可以在Test target -> Build Phases -> Compile Sources里,一次性都加上
解决对Pods的依赖
勾上以后,一跑又挂了,这次换了个错误信息,说找不到FMDatabase.h,这个是项目通过CocoaPods引入的
这次自己研究了半天也没找到地方,最后还是在stackoverflow里找到答案
在project -> info -> configurations里,把base从none改为Pods
所有通过CocoaPods引入的第三方组件,只要引入了pods编译后的库就行了。直接导入工程的组件,则都需要手工加到Test target里才可以。所以用pods还是要方便多了
- 在ios项目中引入单元测试(下)
- 在ios项目中引入单元测试(上)
- 在iOS项目中引入MVVM
- 在项目中引入Subversion
- 在web项目下引入hibernate配置文件
- 如何在项目中引入oscache(二)
- 在VS2012下创建单元测试项目
- 在maven项目中使用Junit进行单元测试(一)
- CocoaPods的使用(xcode创建的IOS应用中引入第三方类库:在同一目录下pod install/update)
- 在java项目中引入dll文件
- 在Android项目中引入SlidingMenu
- 在mingw项目中引入googletest
- 在Java项目中引入日志
- 在ssm项目中引入shiro
- 在Vue项目中引入D3.js
- android如何在项目中进行单元测试
- 在Eclipse中使用JUnit进行单元测试(下)
- 在Eclipse中使用JUnit4进行单元测试(下)
- (一)Makefile研究 —— 必备语法
- 调用ejb出现java.lang.ClassCastException异常
- 静态检查-----pclint使用
- linux shell:linux用户和用户组
- 除非你想干下去否则就不要跟领导怄气对着干
- 在ios项目中引入单元测试(下)
- J2EE全套视频/java/jsp/freemarker/ssh/oracle/linux/webservice
- Matlab曲线拟合
- Down
- Handler详解
- 辽宁鞍山东鞍山镇解家堡村村支书率众人植树
- hibernate获取connection
- CKEditor和CKFinder实现图片上传
- 理工大学ACM平台题答案关于C语言 1168 C语言实验——大小写转换