imanghafoori / eloquent-mockery
允许您以独立的方式设计您的测试。
v1.0.40
2022-11-15 14:02 UTC
Requires
- php: ^7.2|^8.0
- illuminate/database: 5.*|6.*|7.*|8.*|9.*
- illuminate/events: 5.*|6.*|7.*|8.*|9.*
Requires (Dev)
- phpunit/phpunit: ^7.5.20|^8.5.28|^9.5
- symfony/var-dumper: 3.*|4.*|5.*
- dev-main
- v1.0.40
- v0.1.48
- v0.1.47
- v0.1.46
- v0.1.45
- v0.1.44
- v0.1.43
- v0.1.42
- v0.1.41
- v0.1.40
- v0.1.39
- v0.1.38
- v0.1.37
- v0.1.36
- v0.1.35
- v0.1.34
- v0.1.33
- v0.1.32
- v0.1.31
- v0.1.30
- v0.1.29
- v0.1.28
- v0.1.27
- v0.1.26
- v0.1.25
- v0.1.24
- v0.1.23
- v0.1.22
- v0.1.21
- v0.1.20
- v0.1.19
- v0.1.18
- v0.1.17
- v0.1.16
- v0.1.15
- v0.1.14
- v0.1.13
- v0.1.12
- v0.1.11
- v0.1.10
- v0.1.9
- v0.1.8
- v0.1.7
- v0.1.6
- v0.1.5
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- dev-fakeDb
This package is auto-updated.
Last update: 2024-09-25 15:50:11 UTC
README
无需仓库模式即可模拟 eloquent 查询。
为什么创建这个包?
- 通过移除与真实数据库的交互,它解决了“慢测试”的问题。
- 简化了编写和运行测试的过程,因为您的测试将是“数据库独立”的。
安装
您可以通过 Composer 安装 此包
composer require imanghafoori/eloquent-mockery --dev dev-main
用法
首先,您需要在您的 config/database.php
中定义一个新的连接,并将驱动设置为 'arrayDB'。
<?php return [ ... 'connections' => [ 'my_test_connection' => [ 'driver' => 'arrayDB', 'database' => '', ], ... ], ... ]
然后您可以
public function test_basic() { config()->set('database.default', 'my_test_connection'); # ::Arrange:: (Setup Sample Data) FakeDB::addRow('users', ['id' => 1, 'username' => 'faky', 'password' => '...']); FakeDB::addRow('users', ['id' => 1, 'username' => 'maky', 'password' => '...']); # ::Act:: (This query resides in your controller) $user = User::where('username', 'faky')->first(); # <=== This does NOT connect to a real DB. # ::Assert:: $this->assert($user->id === 1); $this->assert($user->username === 'faky'); }
模拟一个 create
查询
public function test_basic() { # In setUp: FakeDB::mockEloquentBuilder(); # ::Act:: $this->post('/create-url', ['some' => 'data' ]) # ::Assert:: $user = User::first(); $this->assertEquals('iman', $user->username); # In tearDown FakeDB::dontMockEloquentBuilder(); }
- 更多示例,请查看
tests
目录。
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。
🙋 贡献
如果您发现任何问题或有更好的方法来完成某事,请随时提交问题或拉取请求。
❗ 安全
如果您发现任何安全相关的问题,请通过电子邮件 imanghafoori1@gmail.com
而不是使用问题跟踪器。