使用的是Xcode5,在创建工程的时候会默认创建一个测试文件夹。名字是:工程名+Tests
文件夹中有默认的文件 工程名+Tests.m 可以不用这个文件 。
测试类主要用于model类数据类的,下面以测试Person类为例。
#import <Foundation/Foundation.h>
@interface Person : NSObject
@property (nonatomic,copy) NSString *name;
@property (nonatomic,assign) int age;
@end
创建自定义测试类的方法:command + n 选择 objective-C test case class 点击next。名称写 PersonTests 然后创建的到PersonTests.m文件:
- (void)setUp
{
[super setUp];
// Put setup code here. This method is called before the invocation of each test method in the class.
}
- (void)tearDown
{
// Put teardown code here. This method is called after the invocation of each test method in the class.
[super tearDown];
}
- (void)testExample{
}
把testExample方法里的默认实现代码删掉。(没有用)
然后导入Person.h头文件
然后就可以添加断言,写Person的测试方法了。比如测试Person里 age的setter和getter方法
自定义一个测试方法叫 testAge。
- (void)testAge
{
Person *p = [[Person alloc] init];
p.age = 17;
XCTAssertTrue(p.age >= 18, @"年龄不得小于18岁");
p.age = 68;
XCTAssertFalse(p.age > 60, @"年龄不得大于60岁");
}
运行测试。注意:在程序运行状态下是不能测试的。如果运行,先关闭。然后长按run按钮。选择Test就可以运行测试类了
如果不出意外的话,上面两个断言 XCTAssertTure和XCTAssertFalse处都会亮红灯。
在Person的实现方法中重写代码如下就变绿灯了
-(void)setAge:(int)age
{
if (_age != age) {
if (age > 60) {
_age = 60;
}else if(age < 18){
_age = 18;
}else{
_age = age;
}
}
}
参考网址: http://www.cnblogs.com/liufan9/archive/2013/06/14/3135414.html