2017-04-24 60 views
0

我刚刚开始用Wordpress学习PHPUnit。我有一个从它的元数据获取数据的小部件。PHPUnit如何测试一个包含get_post_meta()的Wordpress函数?

我的代码如下所示:

  if ($postMeta = get_post_meta($post->ID, 'feature_news_colours_overlay')) { 
       $colourOverlay = $postMeta['0']; 
      } 
      $items[] = [ 
       'title' => $title, 
       'url' => get_permalink($post->ID), 
       'description' => $content, 
       'colourOverlay' => $colourOverlay, 
      ]; 

窗口小部件从feature_news_colours_overlay custom_field该职位获取数据。在我的PhpUnit测试中,我可以添加以下内容以使其测试条件。

  $post = new \stdClass(); 
      $post->post_title = 'Some title text to test.'; 
      $post->ID = 1; 
      $GLOBALS['post_meta'][0] = '#FFCC00'; 

其实,这测试我的产品阵列断言:

'title' => 'Some title text to test.', 
'url' => 'http://something..', 
'description' => 'test desc', 
'colourOverlay' => '#FFoooo' 

这实际上睾丸我if条件,因为我认为这不是一个标准的方式,如果我要检查更多的则1个帖子我实际上不能用GLOBAL值进行测试。

$ GLOBALS ['post_meta'] [0] ='#FFCC00';

有什么办法,我可以添加一个模拟元值到每个帖子,以检查是否条件。

回答

1

如果你把你正在测试的文章ID为$ POST_ID,然后

add_post_meta($post_id, 'your_meta_key', 'your_test_value'); 

在您的测试代码之前你的说法应该做的伎俩。

相关问题