我刚开始用Wordpress学习PHPUnit。我有一个小部件,可以从中获取后期数据和元数据。
我的代码如下所示:
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测试中,我可以添加以下内容以使其测试if条件。
$post = new \stdClass();
$post->post_title = 'Some title text to test.';
$post->ID = 1;
$GLOBALS['post_meta'][0] = '#FFCC00';
这实际上用断言:
测试我的Item数组'title' => 'Some title text to test.',
'url' => 'http://something..',
'description' => 'test desc',
'colourOverlay' => '#FFoooo'
这实际上是在测试我的if条件,因为我认为这不是一种标准方式,如果我必须检查更多1个帖子,我实际上无法用GLOBAL值进行测试。
$ GLOBALS [' post_meta'] [0] ='#FFCC00';
有什么方法可以为每个帖子添加一个模拟元值,以便检查if条件。?
答案 0 :(得分:1)
如果您将帖子ID重新测试到$ post_id,那么
add_post_meta( $post_id, 'your_meta_key', 'your_test_value' );
在断言之前,你的测试代码中的就可以了。