Исходя из мира Ruby, я точно понимаю, чего вы пытаетесь достичь. По-видимому, вы буквально на три часа опередили меня, пытаясь сделать то же самое сегодня (вещь часового пояса?: -).
В любом случае, я верю , что это не поддерживается так, как хотелось бы в OCMock, потому что заглушка метода класса должна буквально достигать класса и изменять реализацию его метода независимо от того, когда, где или кто вызывает метод. Это в отличие от того, что OCMock, по-видимому, делает, чтобы предоставить вам прокси-объект, которым вы манипулируете и иным образом оперируете напрямую, а не вместо «реального» объекта указанного класса.
Например, кажется разумным хотеть заглушить NSURLConnection + sendSynchronousRequest: returningResponse: error: метод. Однако, типично, что использование этого вызова в нашем коде несколько спрятано, что делает его очень неудобным для параметризации и подмены в фиктивном объекте для класса NSURLConnection.
По этой причине, я думаю, что обнаруженный вами метод "извращения методов", хотя и не сексуальный, это именно то, что вы хотите сделать для создания заглушек методов класса. Сказать, что это очень громоздко, кажется крайним - как насчет того, что мы согласны, что это "не элегантно" и, возможно, не так удобно, как OCMock создает для нас жизнь. Тем не менее, это довольно краткое решение проблемы.