XCTAssertEqualObjects比较类

时间:2013-02-21 00:13:42

标签: iphone ocunit

我试图涵盖测试用例

返回类对象的方法。

-(ClassName *)returnClass{

return _class;
}

-(void)test_ReturnClass{

id returnObj;

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

}

我想比较一个节目STAssertEqualObjects isKindOfClass:ClassName是否有可能,如果是,请告诉我。

@All 在此先感谢

1 个答案:

答案 0 :(得分: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);
    
  4. 就个人而言,我坚持选择1.选项2是我从未在生产代码中使用的东西,而选项3更糟糕([foo class]有一些合法用途,但比较它到-equals:的另一个类并不是其中之一。)