2013-02-21 36 views
0

我试图覆盖测试用例STAssertEqualObjects比较类

返回类对象的方法。

-(ClassName *)returnClass{ 

return _class; 
} 

-(void)test_ReturnClass{ 

id returnObj; 

returnObj = [aClassNameObj returnClass]; 
STAssertNotNil(returnObj, @"return Not NULL Value"); 
STAssertEqualObjects(returnObj, [isKindOfClass: ClassName],@""); 

} 

我想比较的表演STAssertEqualObjectsisKindOfClass:ClassName是可能的,如果有,请让我知道。

@All 由于事先

回答

2

目前还不清楚你问什么。

  1. 如果你想检查返回对象的类是ClassName或子类,你可以使用这样的:如果你要检查它的

    STAssertTrue([returnObj isKindOfClass:[ClassName class]], nil); 
    
  2. 一个ClassName,而不是一个子类(这在单元测试中似乎是允许的,但在正常代码中是不允许的),改为使用类似的东西:

    STAssertTrue([returnObj isMemberOfClass:[ClassName class]], nil); 
    
  3. 如果你真的使用STAssertEqualObjects,你可能会使用这样的事情(这还检查类等于;它不允许实例是一个子类):

    STAssertEqualObjects([returnObj class], [ClassName class], nil); 
    

就个人而言,我会坚持选项1选项2是我从来没有需要在产品代码中使用,并选择3更糟糕的是([foo class]有一些合法用途,但将其与-equals:的其他课程相比并不是真正的其中之一)。

+0

感谢您的信息! – kiran 2013-02-21 10:59:10