2013-11-12 2 views
2

Я пытаюсь проверить класс, который реализует два метода класса из NSURLConnection, но постоянно получаю сообщение об ошибке:Mocking селекторы класса с OCMock

error: testSyncConnection (MyURLConnectionTest) failed: *** -[NSProxy doesNotRecognizeSelector:sendSynchronousRequest:returningResponse:error:] called! 

Вот интерфейс для MyURLConnection:

@interface MyURLConnection : NSURLConnection 

+ (void) sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue*) queue completionHandler:(void (^)(NSURLResponse*, NSData*, NSError*)) handler; 
+ (NSData *) sendSynchronousRequest:(NSURLRequest *)request returningResponse (NSURLResponse **)response error:(NSError **)error; 

@end 

Вот как я пытаюсь сделать это:

- (void)testSyncConnection 
{ 

    id testConnection = [OCMockObject mockForClass:[MyURLConnection class]]; 

    [[[testConnection stub] andReturn:Nil] sendSynchronousRequest:Nil 
               returningResponse:Nil 
                  error:Nil]; 

    //rest of test... 

} 

, который терпит неудачу при монтаже p art, производя ошибку, которую я разместил выше.

Я также убедился, что реализация цели тоже добавлена.

Любые советы, что мне здесь не хватает?

+0

вы пробовали '[[[[testConnection окурок] classMethod] andReturn: ноль] sendSynchronousRequest: ...'? – Pfitz

+0

Спасибо за отзыв, но в документах объясняется, что это нужно делать только тогда, когда у вас есть метод класса и экземпляра с тем же именем, что, к сожалению, не мое дело. –

ответ

2

Какую версию OCMock вы используете? Смысловые методы класса поддерживаются с 2.1.

Кроме того, это работает для меня:

id testConnection = [OCMockObject mockForClass:[MyURLConnection class]]; 

[[[testConnection stub] andReturn:nil] sendSynchronousRequest:nil 
              returningResponse:nil 
                 error:NULL]; 

STAssertNil([MyURLConnection sendSynchronousRequest:nil returningResponse:nil error:NULL], nil); 
+0

Один интернет для вас хороший сэр! По какой-то причине я предположил, что у меня есть последняя версия, скачанная 2.2.1 сейчас, и она отлично работает :) –

Смежные вопросы