anlutro/l4-config-mock

此包已被弃用且不再维护。没有建议的替代包。

用于测试 L4 包的极简单模拟配置类。

dev-master 2013-08-21 10:12 UTC

This package is not auto-updated.

Last update: 2020-01-19 16:09:57 UTC


README

#Laravel 4 Config Mock 极简单的模拟 Laravel 配置能力的类。

适用于开发和测试包。设置配置实例上的项目,并将其注入到您的类中。

示例

以下是一个简单示例,展示如何创建您想使用的库(如何使用它不在示例中),如何在服务提供程序中实现它,以及如何编写测试,您可以在其中加载您的包配置文件并设置任何您需要测试类的配置值。

class MyClass
{
	public function setConfig($config)
	{
		$this->config = $config;
	}

	public function hello()
	{
		return $this->config->get('myvendor/mypackage::hello');
	}
}

class MyClassServiceProvider
{
	protected $defer = true;

	public function register()
	{
		$this->app['myclass'] = $this->app->share(function($app) {
			$myclass = new MyClass;
			$myClass->setConfig($app['config']);
		});
	}
}

class MyClassTest extends PHPUnit_Framework_TestCase
{
	public function testHello()
	{
		$config = new anlutro\L4MockConfig\MockConfig;
		// our config file which includes 'hello' => 'my-hello'
		$config->load('/path/to/package/config.php', 'myvendor/mypackage');

		$obj = new MyClass;
		$obj->setConfig($config);

		$this->assertEquals('my-hello', $obj->hello());

		$this->config->set('myvendor/mypackage::hello', 'second-hello');
		$this->assertEquals('second-hello', $obj->hello());
	}
}