test
1.0.0
这个包是一个工具集合,可以使单元测试的一些工作变得更容易。
JoomlaTestTestHelper
是一个静态帮助器类,可用于在使用 PHPUnit 进行单元测试时减轻重复性任务的痛苦。
有两种方法可以帮助处理 PHPUnit 模拟对象。
TestHelper::assignMockCallbacks
此帮助器方法提供了一种批量配置模拟回调的简单方法。
使用 JoomlaTestTestHelper;类 FooTest 扩展 PHPUnit_Framework_TestCase { 公共函数 testFoo() { // 创建模拟。$mockFoo = $this->getMock( 'Foo', // 方法 array.array(), // 构造函数 argument.array(), // 模拟类名。'', // 调用原始构造函数.false ); $mockCallbacks = array( // '方法名称' => <callback>'method1' => array('mockFoo', 'method1'), 'method2' => array($this, 'mockMethod2'), ); TestHelper::assignMockCallbacks($mockFoo, $this, $mockCallbacks); 公共函数mockMethod2($value) { 返回 strtolower($value); } }
TestHelper::assignMockReturns
此帮助器方法提供了一种批量配置模拟返回值的简单方法。
使用 JoomlaTestTestHelper;类 FooTest 扩展 PHPUnit_Framework_TestCase { 公共函数 testFoo() { // 创建模拟。$mockFoo = $this->getMock( 'Foo', // 方法 array.array(), // 构造函数 argument.array(), // 模拟类名。'', // 调用原始构造函数.false ); $mockReturns = array( // '方法名称' => '预设返回值''method1' => '预设结果 1', 'method2' => '预设结果 2', 'method3' => '预设结果 3' , ); TestHelper::assignMockReturns($mockFoo, $this, $mockReturns); } }
有三种方法可以帮助反思。
TestHelper::getValue
TestHelper::getValue
方法允许您获取任何受保护或私有属性的值。
使用 JoomlaTestTestHelper;类 FooTest 扩展 PHPUnit_Framework_TestCase { 公共函数 testFoo() { $instance = 新 Foo; // 获取受保护的 `bar` 属性的值。$value = TestHelper::getValue($instance, 'bar'); } }
应谨慎使用此方法。通常使用 PHPunit 的assertAttribute*
方法更合适。
TestHelper::setValue
TestHelper::setValue
方法允许您设置任何受保护或私有属性的值。
使用 JoomlaTestTestHelper;类 FooTest 扩展 PHPUnit_Framework_TestCase { 公共函数 testFoo() { $instance = 新 Foo; // 设置受保护的“bar”属性的值。 TestHelper::setValue($instance, 'bar', '新值'); } }
此方法对于将值注入到对象中以测试 getter 方法非常有用。
TestHelper::invoke
TestHelper::invoke
方法允许您调用任何受保护或私有方法。指定对象和方法名称后,任何剩余的参数都将传递给正在调用的方法。
使用 JoomlaTestTestHelper;类 FooTest 扩展 PHPUnit_Framework_TestCase { 公共函数 testFoo() { $instance = 新 Foo; // 调用受保护的 `bar` 方法。$value1 = TestHelper::invoke($instance, 'bar'); // 使用参数调用受保护的 `bar` 方法。$value2 = TestHelper::invoke($instance, 'bar', 'arg1', 'arg2'); } }
将"joomla/test": "~2.0"
添加到 Composer.json 中的 require 块中,然后运行composer install
。
{“要求”:{“joomla/test”:“~2.0” } }
或者,您可以简单地从命令行运行以下命令:
作曲家需要 joomla/test "~2.0"