2017-04-24 88 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'); 

在您的測試代碼之前你的說法應該做的伎倆。

相關問題