laradev / test-support
Laravel开发测试支持
dev-master / 0.1.x-dev
2017-05-27 19:30 UTC
Requires
- php: ~7
- illuminate/container: ~5
- illuminate/support: ~5
- mockery/mockery: ~0.9
- phpunit/phpunit: ~5
This package is auto-updated.
Last update: 2024-09-13 14:52:30 UTC
README
本包提供辅助工具和实用程序,以简化Laradev包的测试。
安装
composer require --dev laradev/test-support
用法
创建测试用例
只需扩展类 Laradev\Test\Support\TestCase。
namespace Example use Laradev\Test\Support\TestCase; final class ExampleClassTest extends TestCase { /** implement abstract methods **/ }
实用程序
TestCase 包含一系列以特性形式提供的实用程序。
虽然它们可以独立使用,但扩展 TestCase 类更为可靠。
断言
Assertions 特性通过向 $this 直接提供新的断言来增强 TestCase 类。
assertIsSubclassOf(string $expectedParent, string $actual, string $message = ''):断言实际类是给定类的一个子类。assertBootMergesConfigForProvider(string $providerClass, string $configfile, string $message = ''):断言给定服务提供程序实例的boot方法将其包的配置与主应用程序配置合并。assertBootPublishesConfigForProvider(string $providerClass, string $configfile, string $message = ''):断言给定服务提供程序实例的boot方法将配置文件发布到应用程序配置路径。
MockProvider
MockProvider 特性提供一组工厂方法,以简化对 Laravel 主类的模拟。
工厂方法
newMock($whatToMock = null):返回$whatToMock的实例,或如果参数值为 null,则返回Mockery\MockInterface的实例。newAppMock():返回Illuminate\Contracts\Foundation\Application的实例。newConfigMock():返回Illuminate\Contracts\Config\Repository的实例。newFunctionMock(string $functionName):用于创建函数的模拟,它返回Mockery\CompositeExpectation的实例。newAppContainerWithConfigMock():返回包含配置模拟实例的Illuminate\Contracts\Container\Container的实例,该实例可以通过键config访问。
由于底层的模拟引擎是 Mockery,所有这些实例都实现了 Mockery\MockInterface 或 Mockery\ExpectationInterface,然后可以通过期望进行增强。
其他方法
releaseMocks():释放所有模拟,进行一些清理。useFunction(string $functionName, ...$args):静态方法,用于在模拟函数的体内调用(有关如何做到这一点,请参阅 MockProviderTest ::testMockingFunctions() 的示例)。
注意
在扩展抽象类TestCase时,releaseMocks方法会在每个测试的tearDown方法结束时自动调用。
如果您打算直接使用MockProvider特性,请注意,您需要自己调用releaseMocks方法。
许可证
本项目根据 MIT 许可证 许可。