背景:我还在学习使用模拟并试图测试WordPress插件。我宁愿不加载WordPress,只需使用模拟来伪造类/函数,只需要测试代码的输入和输出。
我正在尝试执行以下操作:
// WP_Query IS NOT DEFINED
$mock = \Mockery::mock('WP_Query', array('have_posts' => true));
$this->assertTrue($mock->have_posts());
$q = new WP_Query();
// fails with "Call to undefined method WP_Query::have_posts()"
$this->assertTrue($q->have_posts());
以上是否可以使用Mockery?
答案 0 :(得分:0)
当一个数组作为Mockery::mock
的第二个参数传递时,它期望构造函数参数,而不是模拟的方法。
相反,你需要:
$mock = \Mockery::mock('WP_Query');
$mock->shouldReceive('have_posts')->andReturn(true);