gealex / doublit
Doublit : 一个用于测试 PHP 类依赖关系的简单工具
v2.1.5
2019-06-04 10:44 UTC
Requires
- php: >=7.0
- phpunit/phpunit: >=6.5
README
Doublit 可以帮助您通过生成类似原始类的双胞胎来测试您的 PHP 类(类似于类的副本)。然后可以使用这些双胞胎代替原始类进行测试。Doublit 可以创建任何类型的类的双胞胎,包括类、接口或特质。
请参阅完整文档 https://getdoublit.com
安装
在您的 composer.json 文件的 "require-dev" 部分中添加以下行 "gealex/doublit": "~2.1.0"
{
"require-dev": {
"gealex/doublit": "~2.1.0"
}
}
并运行以下命令
$ composer update
这将安装 Doublit 的最新版本以及所需的 PhpUnit 包。
创建一个双胞胎
当原始类的所有方法都被重写为返回 null
时,双胞胎被称为 "dummy"。要获取 "dummy" 双胞胎实例,请使用 dummy
方法
```php
// Get a double instance of type "dummy" for class "MyClass"
$my_double = Doublit::dummy(MyClass::class)->getInstance();
```
当原始类的所有方法都被重写为在原始类中表现相同的行为时,双胞胎被称为 "mock"。要获取 "mock" 双胞胎实例,请使用 mock
方法
```php
// Get a double instance of type "mock" for class "MyClass"
$my_double = Doublit::mock(MyClass::class)->getInstance();
```
更多详情: 阅读关于创建双胞胎的文档
测试一个双胞胎
要测试双胞胎方法被调用的次数,请使用 count
方法
```php
// Test that the method "myMethod" is called a least one time
$double::_method('myMethod')->count('>=1');
```
要测试传递给双胞胎方法的参数的值,请使用 args
方法
```php
// Test that the arguments passed to method "myMethod" are "value1" and "value2"
$double::_method('myMethod')->args(['value1', 'value2']);
```
要更改方法的返回值,请使用 stub
方法。
```php
// Make method "myMethod" return "hello"
$my_double::_method('myMethod')->stub('hello');
```
更多详情: 阅读关于测试双胞胎的文档
配置
您可以使用 dummy
和 mock
方法的第二个参数为特定双胞胎定义配置
```php
// Get double instance with config
$my_double = Doublit::dummy(MyClass::class, [
'allow_final_doubles' => true,
'allow_non_existent_classes' => true
])->getInstance();
```
以下是所有可用配置参数的列表
allow_final_doubles
: 将此参数设置为false
以阻止 Doublit 尝试创建最终类/方法的双胞胎。allow_protected_methods
: 将此参数设置为false
以禁止测试受保护的方法。allow_non_existent_classes
: 将此参数设置为false
以禁止别名双胞胎不存在类的双胞胎。test_unexpected_methods
: 将此参数设置为true
以自动接收一个断言错误,每当调用意外方法时。
更多详情: 阅读关于配置的文档
关于
许可证
Doublit 在 MIT 许可证 下发布。
作者
Alexandre Geiswiller - alexandre.geiswiller@gmail.com。
更多详情: 阅读关于的文档