2015-06-30 4 views
0

Я хотел бы, чтобы проверить мое WordPress приложения, которое вызывает эту функцию https://github.com/Automattic/WPCOM-Related-Posts/blob/master/wpcom-related-posts.phpКак использовать насмешку, чтобы издеваться над глобальным классом без пространства имен?

Я не уверен, как издеваются, что из-за WPCom_Related_Posts не в пространство имен.

Это, как я использовать класс

$related_posts = WPCom_Related_Posts()->get_related_posts(get_queried_object_id(), $args);  

Как я должен издеваться это get_related_posts в тесте, так как этот класс будет вызывать Elasticsearch, чтобы получить связанные сообщения, и я не хочу, чтобы установить, что в PHPUnit

ответ

1

Это довольно просто: точно так же, как вы бы издеваться любой другой класс:

$mock = Mockery::mock('WPCom_Related_Posts'); 
//or, if you want to be explicit: 
$mocl = Mockery::mock('\WPCom_Related_Posts'); 

Там довольно много documentation along with examples ABOU т это, на первой странице, например:

$mock = \Mockery::mock('stdClass'); 

Это должно ответил на ваш вопрос (stdClass не в пространстве имен либо (ну, это в глобальной NS).

Не забудьте запустить \Mockery::close(); в конце каждого теста, хотя (в tearDown или _after, или как там оно называется в рамках тестовых вы используете). Особенно, когда вы начинаете использовать ожидания