Вы можете проверить это, используя метод swizzling или OCMock.
С методом swizzling, в первую очередь мы объявляем следующие переменные в тестовом файле реализации:
static NSString *passedString;
static id passedObject;
Затем мы реализуем метод заглушки (в тестовом классе) и идти с swizzling:
+ (void)stub_method:(NSString *)string object:(id)object
{
passedString = string;
passedObject = object;
}
- (void) test__with_method_swizzling
{
// Test preparation
passedString = nil;
passedObject = [NSNull null];// Whatever object to verify that we pass nil
Method originalMethod =
class_getClassMethod([CustomClass class], @selector(method:object:));
Method stubMethod =
class_getClassMethod([self class], @selector(stub_method:object:));
method_exchangeImplementations(originalMethod, stubMethod);
NSString * const kFakeString = @"fake string";
// Method to test
[CustomClass method:kFakeString];
// Verifications
STAssertEquals(passedString, kFakeString, nil);
STAssertNil(passedObject, nil);
method_exchangeImplementations(stubMethod, originalMethod);
}
Но мы можем сделать то же самое с OCMock в гораздо более простым способом:
- (void) test__with_OCMock
{
// Test preparation
id mock = [OCMockObject mockForClass:[CustomClass class]];
NSString * const kFakeString = @"fake string";
[[mock expect] method:kFakeString object:nil];
// Method to test
[CustomClass method:kFakeString];
// Verifications
[mock verify];
}
Я не» я действительно понимаю ваш вопрос. Вы хотите только вызвать метод + (void): (NSString *) string object: (id) object from + (void) метод: (NSString *) string? –
@ user2404543 Да, просто хочу проверить здравомыслие, чтобы убедиться, что он не бродят, если я решит добавить функциональность позже –
Im не уверен, что я понял .. почему вы не можете просто вызвать [CustomClass method: string object: nil] ; from + (void) метод: (NSString *) string? –