囧么说好呢,大神就是任性,自己写了个单元测试类,我们来看看吧
使用
// ----------------------------------
// Unit test
// ----------------------------------
#pragma mark -
TEST_CASE( Core, NSDictionary_Extension )
{
NSDictionary * _testDict;
}
DESCRIBE( before )
{
_testDict = @{ @"k1": @"v1", @"k2": @"v2", @"k3": @3, @"k4": @{ @"a": @4 } };
}
DESCRIBE( objectAtPath )
{
id value1 = [_testDict objectForOneOfKeys:@[@"k1", @"k2"]];
id value2 = [_testDict objectForOneOfKeys:@[@"k2"]];
EXPECTED( [value1 isEqualToString:@"v1"] );
EXPECTED( [value2 isEqualToString:@"v2"] );
id value3 = [_testDict numberForOneOfKeys:@[@"k3"]];
EXPECTED( [value3 isEqualToNumber:@3] );
id value4 = [_testDict stringForOneOfKeys:@[@"k1"]];
EXPECTED( [value4 isEqualToString:@"v1"] );
id obj1 = [_testDict objectAtPath:@"k4.a"];
EXPECTED( [obj1 isEqualToNumber:@4] );
id obj2 = [_testDict objectAtPath:@"k4.b"];
EXPECTED( nil == obj2 );
obj2 = [_testDict objectAtPath:@"k4.b" otherwise:@"b"];
EXPECTED( obj2 && [obj2 isEqualToString:@"b"] );
id obj3 = [_testDict objectAtPath:@"k4"];
EXPECTED( obj3 && [obj3 isKindOfClass:[NSDictionary class]] );
}
DESCRIBE( after )
{
_testDict = nil;
}
TEST_CASE_END