🗺️我的环境
| | |
| --|--|
| PHP| 7.4|
| WordPress| 6.2|
| WP_模拟|1.0|
| PHPUnit| 9.6.11|
| 嘲弄|1.6.6|
验证码:TestCase
use PHPUnit\Framework\TestCase;
use WP_Mock;
use Mockery;
class WPAB_Database_Service_Test extends TestCase
{
/**
* @test
*/
public function migrate()
{
// ... some code ...
$wpdb_mock = Mockery::mock('WPDB');
$wpdb_mock
->allows('get_charset_collate')
->withNoArgs()
->andReturn('utf16_general_ci');
$wpdb_mock->prefix = 'wpbb_';
$result = $database_service->migrate(); // The function I want test
$this->assertSame($result, 1);
}
}
验证码:Row issue of database_service->migrate()
$prefix = $wpdb->prefix;
🚩问题与展望
运行测试后,我有以下警告:PHP Notice: Undefined property: Mockery_1__WPDB::$prefix in ...
目前的测试成功了,原因不明。Mockery默认返回空字符串🤔(如果有人得到了答案)
有人知道如何使用WP_Mock和/或Mockery模拟/模拟特定属性(静态和非静态)吗?
我需要知道避免这种警告的最佳方法。提前感谢您的时间️
1条答案
按热度按时间6yt4nkrj1#
我只是在我的测试中错过了下面的一行。