0

私はテストケースをカバーしようとしています

クラスオブジェクトを返すメソッド。

-(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が、可能であれば教えてください。

@すべてのおかげで事前に

4

1 に答える 1

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:はありません本当にそのうちの1つです)。

于 2013-02-21T02:45:16.217 に答える