sách gpt4 ai đã đi

php - Mocking Laravel Eloquent 模型 - AppServiceProvider 中使用的 Mocking 模型

In lại 作者:行者123 更新时间:2023-12-04 14:00:16 32 4
mua khóa gpt4 Nike

我正在尝试使用 alias 指令模拟一个 Eloquent 模型,如下所示:

$transporter = \Mockery::mock('alias:' . Transporter::class)

我在类中添加了以下注释
* @runTestsInSeparateProcesses
* @preserveGlobalState disabled

问题是在我的 AppServiceProvider.php 中我注册我的观察员:
Transporter::observe(DefaultValuesObserver::class);

因此,当我注释掉这一行时,模拟工作正常。
但是当这条线出现时,我得到一个 Mockery\Exception\RuntimeException: Could not load mock App\Models\Laravel\Transporter, class already exists
* 这是 phpunit 的过滤运行,其中只运行一个类。

我想在调用observe 时,它已经在自动加载传输类了。

因此,即使在单独的进程中运行所有内容时,该类也已在 AppServiceProvider 中注册。

我目前的解决方法是不使用别名,而是使用 passthru 来克服 Eloquent 问题:
$transporter = \Mockery::mock(Transporter::class)
->shouldReceive('getAttribute')
->passthru()
->shouldReceive('setAttribute')
->passthru();

但是如果我必须在任何地方都这样做,这不是最好的解决方案。

1 Câu trả lời

尝试使用 $mock = \Mockery::mock('overload:MyClass');供引用http://docs.mockery.io/en/latest/reference/creating_test_doubles.html?highlight=alias%3A#overloading

关于php - Mocking Laravel Eloquent 模型 - AppServiceProvider 中使用的 Mocking 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49489789/

32 4 0
Bài viết được đề xuất: java - Flyway 可以从 jar 迁移吗?
Bài viết được đề xuất: ruby-on-rails - 如何使用 redux-token-auth 设置 devise_token_auth 和 omniauth?
Bài viết được đề xuất: JSON Schema 迁移或清理
Bài viết được đề xuất: NSTableView 检测行已滚动
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com