全部文章目录:http://my.oschina.net/ChenTF/blog/677112html
本篇文章地址: http://my.oschina.net/ChenTF/blog/677309git
会持续的更新全部历史文章, 因此收藏的话请收藏上面的地址。github
一个工做空间能够包含多个项目,一个项目能够包含多个目标(生成物)。express
一个项目中根据运行的targets不一样,能够进行不一样的编译设置,project是基础父类,targets是子类,targets的设置会覆盖project的设置。缓存
单元测试是在一个新的target上进行的设置,这样就不会影响程序开发,编译。函数
在XCode7中建立一个项目时默认是选中建立测试target的,若是没有,建立方法以下:File -> New -> target -> UITest/UnitTest,建立完成后会自动建立对应的文件夹。单元测试
使用该UnitTest测试一些代码逻辑,使用UITest测试UI的点击交互逻辑。测试
说明:ui
说明:spa
调用:
一个测试是否经过,是须要经过XCTassert类来进行验收的,XCTAssert是 一系列宏方法,提供了不少的判断(下面会列举)。
若是经过则是在方法前是√,没有打印;若是失败则方法前是×,打印。(看上图)
打印:
测试用例列表:
参考地址:http://my.oschina.net/u/1418722/blog/340194?fromerr=RUMiSWBO
XCTFail(...) 任未尝试都会测试失败,...是输出的提示文字。(后面都是这样) XCTAssertNil(expression, ...) expression为空时经过,不然测试失败。 expression接受id类型的参数。 XCTAssertNotNil(expression, ...) expression不为空时经过,不然测试失败。 expression接受id类型的参数。 XCTAssert(expression, ...) expression为true时经过,不然测试失败。 expression接受boolean类型的参数。 XCTAssertTrue(expression, ...) expression为true时经过,不然测试失败。 expression接受boolean类型的参数。 XCTAssertFalse(expression, ...) expression为false时经过,不然测试失败。 expression接受boolean类型的参数。 XCTAssertEqualObjects(expression1, expression2, ...) expression1和expression1地址相同时经过,不然测试失败。 expression接受id类型的参数。 XCTAssertNotEqualObjects(expression1, expression2, ...) expression1和expression1地址不相同时经过,不然测试失败。 expression接受id类型的参数。 XCTAssertEqual(expression1, expression2, ...) expression1和expression1相等时经过,不然测试失败。 expression接受基本类型的参数(数值、结构体之类的)。 XCTAssertNotEqual(expression1, expression2, ...) expression1和expression1不相等时经过,不然测试失败。 expression接受基本类型的参数。 XCTAssertEqualWithAccuracy(expression1, expression2, accuracy, ...) expression1和expression2之间的任何值都大于accuracy时,测试失败。 expression一、expression二、accuracy都为基本类型。 XCTAssertNotEqualWithAccuracy(expression1, expression2, accuracy, ...) expression1和expression2之间的任何值都小于等于accuracy时,测试失败。 expression一、expression二、accuracy都为基本类型。 XCTAssertGreaterThan(expression1, expression2, ...) expression1 <= expression2时,测试失败。 expression为基本类型 XCTAssertGreaterThanOrEqual(expression1, expression2, ...) expression1 < expression2时,测试失败。 expression为基本类型 XCTAssertLessThan(expression1, expression2, ...) expression1 >= expression2时,测试失败。 expression为基本类型 XCTAssertLessThanOrEqual(expression1, expression2, ...) expression1 > expression2时,测试失败。 expression为基本类型 XCTAssertThrows(expression, ...) expression没抛异常,测试失败。 expression为一个表达式 XCTAssertThrowsSpecific(expression, exception_class, ...) expression没抛指定类的异常,测试失败。 expression为一个表达式 exception_class为一个指定类 XCTAssertThrowsSpecificNamed(expression, exception_class, exception_name, ...) expression没抛指定类、指定名字的异常,测试失败。 expression为一个表达式 exception_class为一个指定类 exception_name为一个指定名字 XCTAssertNoThrow(expression, ...) expression抛出异常时,测试失败。 expression为一个表达式 XCTAssertNoThrowSpecific(expression, exception_class, ...) expression抛出指定类的异常,测试失败。 expression为一个表达式 XCTAssertNoThrowSpecificNamed(expression, exception_class, exception_name, ...) expression抛出指定类、指定名字的异常,测试失败。 expression为一个表达式 exception_class为一个指定类 exception_name为一个指定名字
参考:http://www.cnblogs.com/graphics/p/4117353.html
Target membership是指XCode中,一个文件属于哪个工程,在XCode左侧的工程面板中选中一个文件,在XCode右侧的属性面板中会显示其Target Membership,以下图。
当前的文件AppDelegate.m属于书谱这个Target。
Target Membership的一些属性。
之前遇到一个错误,就是UIImage建立的时候返回nil,仔细查看发现,图片的Target Membership选项没有勾上。这个错误比较难以发现,特此记之。
在测试本地存储是,若是须要一些二进制文件的支持,则test targert也须要引入相应的文件(配置和正常项目需同样)。
提醒:
每次修改完配置文件,建议先Clean(Command+Shift+K)缓存,再编译。
pch 和main target设置成一直, 注意Precompile Prefix Header选项。
当项目中有pod时, 在测试文件中引用pods的文件, 提示找不到, 错误以下:
解决方案: 设置PROJECT的Configurations
两种方案
一: 设置plist文件与build一致
二: 将info.plist路径改为build target的路径
https://github.com/ChenTF/Experiences/tree/master/XCodeSetting